亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reg_printing.c

?? samba-3.0.22.tar.gz 編譯smb服務器的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	regval_ctr_addvalue( values, "Port", REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );	init_unistr2( &data, info2->sharename, UNI_STR_TERMINATE);	regval_ctr_addvalue( values, "Share Name", REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );	init_unistr2( &data, info2->drivername, UNI_STR_TERMINATE);	regval_ctr_addvalue( values, "Printer Driver", REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );	init_unistr2( &data, info2->sepfile, UNI_STR_TERMINATE);	regval_ctr_addvalue( values, "Separator File", REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );	init_unistr2( &data, "WinPrint", UNI_STR_TERMINATE);	regval_ctr_addvalue( values, "Print Processor",  REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );	init_unistr2( &data, "RAW", UNI_STR_TERMINATE);	regval_ctr_addvalue( values, "Datatype", REG_SZ, (char*)data.buffer, data.uni_str_len*sizeof(uint16) );			/* use a prs_struct for converting the devmode and security 	   descriptor to REG_BINARY */		prs_init( &prs, RPC_MAX_PDU_FRAG_LEN, values, MARSHALL);	/* stream the device mode */			snum = lp_servicenumber(info2->sharename);	if ( (devmode = construct_dev_mode( snum )) != NULL ) {					if ( spoolss_io_devmode( "devmode", &prs, 0, devmode ) ) {			offset = prs_offset( &prs );			regval_ctr_addvalue( values, "Default Devmode", REG_BINARY, prs_data_p(&prs), offset );		}	}			prs_mem_clear( &prs );	prs_set_offset( &prs, 0 );			/* stream the printer security descriptor */		if ( info2->secdesc_buf && info2->secdesc_buf->len )  {		if ( sec_io_desc("sec_desc", &info2->secdesc_buf->sec, &prs, 0 ) ) {			offset = prs_offset( &prs );			regval_ctr_addvalue( values, "Security", REG_BINARY, prs_data_p(&prs), offset );		}	}	prs_mem_free( &prs );	return;		}/********************************************************************** *********************************************************************/static int key_printers_fetch_values( const char *key, REGVAL_CTR *values ){	int 		num_values;	char		*printers_key;	char		*printername, *printerdatakey;	NT_PRINTER_INFO_LEVEL 	*printer = NULL;	NT_PRINTER_DATA	*p_data;	int		i, key_index;		printers_key = strip_printers_prefix( key );			/* top level key values stored in the registry has no values */		if ( !printers_key ) {		/* normalize to the 'HKLM\SOFTWARE\...\Print\Printers' ket */		return regdb_fetch_values( KEY_WINNT_PRINTERS, values );	}		/* lookup the printer object */		reg_split_path( printers_key, &printername, &printerdatakey );	if ( !W_ERROR_IS_OK( get_a_printer(NULL, &printer, 2, printername) ) )		goto done;			if ( !printerdatakey ) {		fill_in_printer_values( printer->info_2, values );		goto done;	}			/* iterate over all printer data keys and fill the regval container */		p_data = printer->info_2->data;	if ( (key_index = lookup_printerkey( p_data, printerdatakey )) == -1  ) {		/* failure....should never happen if the client has a valid open handle first */		DEBUG(10,("key_printers_fetch_values: Unknown keyname [%s]\n", printerdatakey));		if ( printer )			free_a_printer( &printer, 2 );		return -1;	}		num_values = regval_ctr_numvals( p_data->keys[key_index].values );		for ( i=0; i<num_values; i++ )		regval_ctr_copyvalue( values, regval_ctr_specific_value(p_data->keys[key_index].values, i) );			done:	if ( printer )		free_a_printer( &printer, 2 );			return regval_ctr_numvals( values );}/********************************************************************** *********************************************************************/#define REG_IDX_ATTRIBUTES		1#define REG_IDX_PRIORITY		2#define REG_IDX_DEFAULT_PRIORITY	3#define REG_IDX_CHANGEID		4#define REG_IDX_STATUS			5#define REG_IDX_STARTTIME		6#define REG_IDX_NAME			7#define REG_IDX_LOCATION		8#define REG_IDX_DESCRIPTION		9#define REG_IDX_PARAMETERS		10#define REG_IDX_PORT			12#define REG_IDX_SHARENAME		13#define REG_IDX_DRIVER			14#define REG_IDX_SEP_FILE		15#define REG_IDX_PRINTPROC		16#define REG_IDX_DATATYPE		17#define REG_IDX_DEVMODE			18#define REG_IDX_SECDESC			19#define REG_IDX_UNTILTIME		20struct {	const char *name;	int index;	} printer_values_map[] = {	{ "Attributes", 	REG_IDX_ATTRIBUTES },	{ "Priority", 		REG_IDX_PRIORITY },	{ "Default Priority", 	REG_IDX_DEFAULT_PRIORITY },	{ "ChangeID", 		REG_IDX_CHANGEID },	{ "Status", 		REG_IDX_STATUS },	{ "StartTime", 		REG_IDX_STARTTIME },	{ "UntilTime",	 	REG_IDX_UNTILTIME },	{ "Name", 		REG_IDX_NAME },	{ "Location", 		REG_IDX_LOCATION },	{ "Descrioption", 	REG_IDX_DESCRIPTION },	{ "Parameters", 	REG_IDX_PARAMETERS },	{ "Port", 		REG_IDX_PORT },	{ "Share Name", 	REG_IDX_SHARENAME },	{ "Printer Driver", 	REG_IDX_DRIVER },	{ "Separator File", 	REG_IDX_SEP_FILE },	{ "Print Processor", 	REG_IDX_PRINTPROC },	{ "Datatype", 		REG_IDX_DATATYPE },	{ "Default Devmode", 	REG_IDX_DEVMODE },	{ "Security", 		REG_IDX_SECDESC },	{ NULL, -1 }};static int find_valuename_index( const char *valuename ){	int i;		for ( i=0; printer_values_map[i].name; i++ ) {		if ( strequal( valuename, printer_values_map[i].name ) )			return printer_values_map[i].index;	}		return -1;}/********************************************************************** *********************************************************************/static void convert_values_to_printer_info_2( NT_PRINTER_INFO_LEVEL_2 *printer2, REGVAL_CTR *values ){	int num_values = regval_ctr_numvals( values );	uint32 value_index;	REGISTRY_VALUE *val;	int i;		for ( i=0; i<num_values; i++ ) {		val = regval_ctr_specific_value( values, i );		value_index = find_valuename_index( regval_name( val ) );				switch( value_index ) {			case REG_IDX_ATTRIBUTES:				printer2->attributes = (uint32)(*regval_data_p(val));				break;			case REG_IDX_PRIORITY:				printer2->priority = (uint32)(*regval_data_p(val));				break;			case REG_IDX_DEFAULT_PRIORITY:				printer2->default_priority = (uint32)(*regval_data_p(val));				break;			case REG_IDX_CHANGEID:				printer2->changeid = (uint32)(*regval_data_p(val));				break;			case REG_IDX_STARTTIME:				printer2->starttime = (uint32)(*regval_data_p(val));				break;			case REG_IDX_UNTILTIME:				printer2->untiltime = (uint32)(*regval_data_p(val));				break;			case REG_IDX_NAME:				rpcstr_pull( printer2->printername, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_LOCATION:				rpcstr_pull( printer2->location, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_DESCRIPTION:				rpcstr_pull( printer2->comment, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_PARAMETERS:				rpcstr_pull( printer2->parameters, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_PORT:				rpcstr_pull( printer2->portname, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_SHARENAME:				rpcstr_pull( printer2->sharename, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_DRIVER:				rpcstr_pull( printer2->drivername, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_SEP_FILE:				rpcstr_pull( printer2->sepfile, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_PRINTPROC:				rpcstr_pull( printer2->printprocessor, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_DATATYPE:				rpcstr_pull( printer2->datatype, regval_data_p(val), sizeof(fstring), regval_size(val), 0 );				break;			case REG_IDX_DEVMODE:				break;			case REG_IDX_SECDESC:				break;					default:				/* unsupported value...throw away */				DEBUG(8,("convert_values_to_printer_info_2: Unsupported registry value [%s]\n", 					regval_name( val ) ));		}	}		return;}	/********************************************************************** *********************************************************************/static BOOL key_printers_store_values( const char *key, REGVAL_CTR *values ){	char *printers_key;	char *printername, *keyname;	NT_PRINTER_INFO_LEVEL   *printer = NULL;	WERROR result;		printers_key = strip_printers_prefix( key );		/* values in the top level key get stored in the registry */	if ( !printers_key ) {		/* normalize on the 'HKLM\SOFTWARE\....\Print\Printers' key */		return regdb_store_values( KEY_WINNT_PRINTERS, values );	}		reg_split_path( printers_key, &printername, &keyname );	if ( !W_ERROR_IS_OK(get_a_printer(NULL, &printer, 2, printername) ) )		return False;	/* deal with setting values directly under the printername */	if ( !keyname ) {		convert_values_to_printer_info_2( printer->info_2, values );	}	else {		int num_values = regval_ctr_numvals( values );		int i;		REGISTRY_VALUE *val;				delete_printer_key( printer->info_2->data, keyname );				/* deal with any subkeys */		for ( i=0; i<num_values; i++ ) {			val = regval_ctr_specific_value( values, i );			result = set_printer_dataex( printer, keyname, 				regval_name( val ),				regval_type( val ),				regval_data_p( val ),				regval_size( val ) );			if ( !W_ERROR_IS_OK(result) ) {				DEBUG(0,("key_printers_store_values: failed to set printer data [%s]!\n",					keyname));				free_a_printer( &printer, 2 );				return False;			}		}	}	result = mod_a_printer( printer, 2 );	free_a_printer( &printer, 2 );	return W_ERROR_IS_OK(result);}/********************************************************************* ********************************************************************* ** "HKLM/SYSTEM/CURRENTCONTROLSET/CONTROL/PRINT/ENVIRONMENTS" ********************************************************************* *********************************************************************/static int key_driver_fetch_keys( const char *key, REGSUBKEY_CTR *subkeys ){	const char *environments[] = {		"Windows 4.0",		"Windows NT x86",		"Windows NT R4000",		"Windows NT Alpha_AXP",		"Windows NT PowerPC",		"Windows IA64",		"Windows x64",		NULL };	fstring *drivers = NULL;	int i, env_index, num_drivers;	char *keystr, *base, *subkeypath;	pstring key2;	int num_subkeys = -1;	int version;	DEBUG(10,("key_driver_fetch_keys key=>[%s]\n", key ? key : "NULL" ));		keystr = reg_remaining_path( key + strlen(KEY_ENVIRONMENTS) );			/* list all possible architectures */		if ( !keystr ) {		for ( num_subkeys=0; environments[num_subkeys]; num_subkeys++ ) 			regsubkey_ctr_addkey( subkeys, 	environments[num_subkeys] );		return num_subkeys;	}		/* we are dealing with a subkey of "Environments */		pstrcpy( key2, keystr );	keystr = key2;	reg_split_path( keystr, &base, &subkeypath );		/* sanity check */		for ( env_index=0; environments[env_index]; env_index++ ) {		if ( strequal( environments[env_index], base ) )			break;	}	if ( !environments[env_index] )		return -1;		/* ...\Print\Environements\...\ */		if ( !subkeypath ) {		regsubkey_ctr_addkey( subkeys, "Drivers" );		regsubkey_ctr_addkey( subkeys, "Print Processors" );						return 2;	}		/* more of the key path to process */		keystr = subkeypath;	reg_split_path( keystr, &base, &subkeypath );				/* ...\Print\Environements\...\Drivers\ */		if ( !subkeypath ) {		if ( strequal(base, "Drivers") ) {			switch ( env_index ) {				case 0:	/* Win9x */					regsubkey_ctr_addkey( subkeys, "Version-0" );					break;				default: /* Windows NT based systems */					regsubkey_ctr_addkey( subkeys, "Version-2" );					regsubkey_ctr_addkey( subkeys, "Version-3" );					break;						}					return regsubkey_ctr_numkeys( subkeys );		} else if ( strequal(base, "Print Processors") ) {			if ( env_index == 1 || env_index == 5 || env_index == 6 )				regsubkey_ctr_addkey( subkeys, "winprint" );							return regsubkey_ctr_numkeys( subkeys );		} else			return -1;	/* bad path */	}		/* we finally get to enumerate the drivers */		/* only one possible subkey below PrintProc key */	if ( strequal(base, "Print Processors") ) {		keystr = subkeypath;		reg_split_path( keystr, &base, &subkeypath );		/* no subkeys below this point */		if ( subkeypath )			return -1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜电影网一区| a亚洲天堂av| 亚洲色欲色欲www在线观看| 一区二区三区不卡在线观看| av综合在线播放| 国产在线视频精品一区| 午夜婷婷国产麻豆精品| 性欧美大战久久久久久久久| 一区二区三区中文字幕| 亚洲激情av在线| 亚洲猫色日本管| 亚洲乱码精品一二三四区日韩在线| 精品亚洲成a人| 玉足女爽爽91| 亚洲三级免费观看| 国产亚洲综合av| 日韩欧美国产午夜精品| 欧美一卡2卡3卡4卡| 在线视频中文字幕一区二区| 懂色av一区二区在线播放| 亚洲va欧美va天堂v国产综合| 中文字幕第一区| 久久五月婷婷丁香社区| 69久久夜色精品国产69蝌蚪网| 色综合天天综合网国产成人综合天 | 中文乱码免费一区二区| 久久日韩精品一区二区五区| 日韩欧美国产综合| 欧美一区二区网站| 欧美精品乱码久久久久久按摩| 91女厕偷拍女厕偷拍高清| 99精品视频在线观看免费| 国产精品18久久久久久久网站| 国产精品乡下勾搭老头1| 久久国产乱子精品免费女| 波多野结衣91| 久久精品视频一区二区三区| 亚洲va国产va欧美va观看| 六月丁香综合在线视频| 免费观看日韩av| 国产精品日产欧美久久久久| 亚洲欧美日本在线| 亚洲18女电影在线观看| 成人91在线观看| 亚洲免费观看高清完整版在线观看| 亚洲一区二区三区视频在线| 午夜精品久久久久久久| 日本aⅴ亚洲精品中文乱码| 久久成人免费电影| av男人天堂一区| 欧美一区午夜视频在线观看| 国产网红主播福利一区二区| 亚洲精品ww久久久久久p站| 亚洲欧美色图小说| 精品一区二区三区免费视频| 国产成人精品网址| 7878成人国产在线观看| 国产欧美一区二区三区在线看蜜臀 | 亚洲少妇30p| 日韩av在线播放中文字幕| 国产成人亚洲综合a∨婷婷| 9191精品国产综合久久久久久| 久久这里只有精品首页| 一级精品视频在线观看宜春院 | 国产欧美中文在线| 亚洲一区视频在线观看视频| 国产成a人无v码亚洲福利| 在线不卡免费欧美| 亚洲黄色免费电影| 精品一区二区免费| 日韩免费视频一区二区| 青青草国产精品亚洲专区无| 国产午夜三级一区二区三| 在线观看不卡视频| 蜜臀av亚洲一区中文字幕| 国产色一区二区| 欧美在线免费视屏| 国产日产精品1区| 欧美激情在线免费观看| 美女视频一区二区三区| 色偷偷成人一区二区三区91| 亚洲精品成人少妇| 国产精品国产三级国产aⅴ原创 | 国产在线看一区| 色哟哟国产精品免费观看| 欧美国产精品v| 一卡二卡欧美日韩| 成人高清伦理免费影院在线观看| 日韩欧美卡一卡二| 视频一区欧美日韩| 欧美中文字幕不卡| 在线观看日韩毛片| 日精品一区二区三区| 精品视频在线视频| 午夜精品久久一牛影视| 日韩亚洲欧美成人一区| 亚洲成av人片一区二区| 91精品国产综合久久精品app| 午夜精品久久久久久久久久久| 欧美精品1区2区| 国产自产2019最新不卡| 欧美激情一二三区| 99国产精品99久久久久久| 一区二区三区电影在线播| 91精品国产色综合久久不卡电影| 五月天国产精品| 久久精品视频一区| 成人激情校园春色| 午夜婷婷国产麻豆精品| 久久先锋资源网| 成人午夜短视频| 日韩中文字幕亚洲一区二区va在线 | 久久这里只有精品首页| 国产成人一级电影| 一区二区高清免费观看影视大全 | 欧美日韩精品是欧美日韩精品| 首页国产欧美日韩丝袜| 91视频免费观看| 日韩主播视频在线| 中文字幕一区二区日韩精品绯色| 2020国产成人综合网| 夜夜嗨av一区二区三区中文字幕| 亚洲一区二区三区视频在线播放| 久久精品二区亚洲w码| 日韩精品在线网站| 性欧美疯狂xxxxbbbb| 欧美一区永久视频免费观看| 精品一区二区三区在线播放视频 | 五月婷婷激情综合网| 国产精品久久久久久久裸模| 制服.丝袜.亚洲.中文.综合| 欧洲精品一区二区| 国产69精品久久777的优势| 一区二区三区四区在线播放 | 国产乱码一区二区三区| 天堂一区二区在线| 99精品久久只有精品| 这里只有精品电影| 欧美国产一区在线| 色综合久久久久综合99| 99riav一区二区三区| 伊人开心综合网| 51精品久久久久久久蜜臀| 狠狠色综合播放一区二区| 中文字幕第一区综合| 欧美三级韩国三级日本一级| 久久99国产精品免费| 成人免费一区二区三区视频| 欧美三片在线视频观看 | 99久久久精品| 日韩在线卡一卡二| 欧美经典三级视频一区二区三区| 色综合久久天天| 韩国女主播一区| 亚洲精品亚洲人成人网在线播放| 91精品国产综合久久精品性色| 成人免费黄色在线| 日本欧美久久久久免费播放网| 国产精品久久久久永久免费观看| 欧美日本一道本在线视频| 国产精品69毛片高清亚洲| 亚洲一区二区欧美日韩| www国产精品av| 91福利小视频| 国产成人精品免费视频网站| 日日骚欧美日韩| 亚洲欧洲国产日本综合| 欧美一区二区福利在线| 99久久精品国产网站| 久久99精品国产麻豆婷婷洗澡| 亚洲精品乱码久久久久久| 国产午夜亚洲精品羞羞网站| 在线播放91灌醉迷j高跟美女| 成人动漫一区二区三区| 免费xxxx性欧美18vr| 亚洲另类在线一区| 国产欧美一区视频| 欧美电影免费观看高清完整版 | 91免费视频网址| 国产成人免费在线| 久久激情五月婷婷| 亚洲一区二区三区四区在线观看| 国产亚洲精品资源在线26u| 欧美福利视频一区| 91激情在线视频| 99精品久久99久久久久| 国产精品 日产精品 欧美精品| 一区二区三区加勒比av| 久久99精品一区二区三区三区| 在线欧美日韩精品| 日韩vs国产vs欧美| 成人国产在线观看| 国产精品你懂的在线欣赏| 黄页网站大全一区二区| 日韩一区二区三区在线观看| 亚洲裸体xxx| 91免费国产在线| 中文字幕一区二区三区不卡| 精品在线观看免费| 欧美成人vps|