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

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

?? vdkcmd.c

?? Virtual Disk Driver
?? C
?? 第 1 頁 / 共 3 頁
字號:
		printf("%s\n", VdkStatusStr(ret));		return -1;	}	PrintMessage(MSG_DISK_DEVICE, disk_device);	return 0;}////	Delete a virtual disk device//	Command Line Parameters: none//int Delete(char **args){	ULONG disk_device;	DWORD ret;	UNREFERENCED_PARAMETER(args);	//	ensure that the driver is installed	if (driver_state == VDK_NOT_INSTALLED) {		PrintMessage(MSG_NOT_INSTALLED);		return -1;	}	//	ensure that the driver is running	if (driver_state != SERVICE_RUNNING) {		PrintMessage(MSG_NOT_RUNNING);		return -1;	}	//	get current number of disk devices	ret = VdkGetDriverInfo(NULL, &disk_device, NULL, NULL, NULL);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_GET_CONFIG_NG);		printf("%s\n", VdkStatusStr(ret));		return -1;	}	if (disk_device == 1) {		PrintMessage(MSG_NO_LESS_DISK);		return -1;	}	//	delete disk	ret = VdkDeleteDisk(NULL);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_DELETEDISK_NG, disk_device - 1);		printf("%s\n", VdkStatusStr(ret));		return -1;	}	PrintMessage(MSG_DELETEDISK_OK, disk_device - 1);	//	print new number of disk devices	ret = VdkGetDriverInfo(NULL, &disk_device, NULL, NULL, NULL);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_GET_CONFIG_NG);		printf("%s\n", VdkStatusStr(ret));		return -1;	}	PrintMessage(MSG_DISK_DEVICE, disk_device);	return 0;}////	Print disk image files information//	Command Line Parameters://		path//int	View(char **args){	PVOID				disk		= NULL;	PVDK_OPEN_FILE_INFO	open_info	= NULL;	VDK_DISK_INFO		disk_info	= { 0 };	ULONG				info_size;	DWORD				ret;	//	Create File structure	VDiskSetCallBack(VDiskCallback);	ret = VDiskLoadFile(&disk, *args, NULL);	if (ret != ERROR_SUCCESS || disk == NULL) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret == ERROR_SUCCESS ? ERROR_INVALID_FUNCTION : ret));		goto cleanup;	}	ret = VDiskCreateTree(disk);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	ret = VDiskMapToOpenInfo(disk, (PVOID *)&open_info, &info_size);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	//	print image file information	PrintMessage(MSG_DISKIMAGE_NAME, VDiskGetDiskName(disk));	PrintFileInfo(open_info);	//	open virtual disk	open_info->DiskType = VDK_DISKTYPE_READONLY;	ret = VdkOpenDisk(open_info, &disk_info);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	//	print partition info	PrintMessage(MSG_PARTITION_HEADER);	ret = VdkListPartitions(&disk_info, NULL, 0, PartList_Callback, (PVOID)-1);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_GET_PART_NG);		printf("%s\n", VdkStatusStr(ret));	}cleanup:	if (disk) {		VDiskDelete(disk);	}	if (open_info) {		VdkFreeMem(open_info);	}	if (disk_info.DiskType) {		VdkCloseDisk(&disk_info);	}	return (ret == ERROR_SUCCESS ? 0 : -1);}////	Opens virtual disk image//	Command Line Parameters://		disk number//		image file path//		(optional) access mode - default to read-only//		(optional) partition to assign drive letter - default to all mountable//		(optional) drive letters - default to the first available letter//int	Open(char **args){	// for command line parameters	ULONG	disk_number;	LPTSTR	file_path;	BOOL	writable		= FALSE;	BOOL	undoable		= FALSE;	BOOL	writeblock		= FALSE;	LPTSTR	drive_letters	= NULL;	ULONG	part_number		= (ULONG)-1;	//	for virtual disk operation	PVOID	disk			= NULL;	// for vdk driver operation	ULONG	access;	HANDLE	hDevice			= NULL;	PVDK_OPEN_FILE_INFO		file_info = NULL;	ASSIGN_PARAM			assign;	DWORD	ret;	//	process command line parameters	if (**args == '*') {		disk_number = (ULONG)-1;	}	else if (isdigit(**args)) {		disk_number = atol(*args);		if (disk_number >= VDK_MAXIMUM_DISK_NUM) {			PrintMessage(MSG_INVALID_DISK, *args);			return -1;		}	}	else {		PrintMessage(MSG_INVALID_DISK, *args);		return -1;	}	args++;	if (!*args || !**args) {		PrintMessage(MSG_USAGE_OPEN);		return -1;	}	file_path = *args;	while (*(++args)) {		if (_stricmp(*args, "/rw") == 0) {			if (writable) {				PrintMessage(MSG_DUPLICATE_ARGS, *args);				return -1;			}			writable = TRUE;		}		else if (_stricmp(*args, "/undo") == 0) {			if (undoable) {				PrintMessage(MSG_DUPLICATE_ARGS, *args);				return -1;			}			undoable = TRUE;		}		else if (_stricmp(*args, "/wb") == 0) {			if (writeblock) {				PrintMessage(MSG_DUPLICATE_ARGS, *args);				return -1;			}			writeblock = TRUE;		}		else if (_strnicmp(*args, "/l:", 3) == 0) {			if (drive_letters) {				PrintMessage(MSG_DUPLICATE_ARGS, "/L");				return -1;			}			drive_letters = *args + 3;		}		else if (_strnicmp(*args, "/p:", 3) == 0) {			if (part_number != (ULONG)-1) {				PrintMessage(MSG_DUPLICATE_ARGS, "/P");				return -1;			}			if (!isdigit(*(*args + 3))) {				PrintMessage(MSG_INVALID_PART, *args + 3);				return -1;			}			part_number = atol(*args + 3);		}		else {			PrintMessage(MSG_UNKNOWN_OPTION, *args, "OPEN");			return -1;		}	}	if ((writable && undoable) ||		(writable && writeblock) ||		(undoable && writeblock)) {		PrintMessage(MSG_OPENMODE_OPTION);		return -1;	}	//	ensure that the driver is installed	if (driver_state == VDK_NOT_INSTALLED) {		if ((ret = VdkInstall(NULL, FALSE)) == ERROR_SUCCESS) {			PrintMessage(MSG_INSTALL_OK);		}		else {			PrintMessage(MSG_INSTALL_NG);			printf("%s\n", VdkStatusStr(ret));			return -1;		}	}	//	ensure that the driver is started	if (driver_state != SERVICE_RUNNING) {		if ((ret = VdkStart(&driver_state)) == ERROR_SUCCESS) {			PrintMessage(MSG_START_OK);		}		else {			PrintMessage(MSG_START_NG);			printf("%s\n", VdkStatusStr(ret));			return -1;		}	}	//	Open device	if (disk_number == (ULONG)-1) {		disk_number = 0;		for (;;) {			ret = VdkCheckDeviceState(NULL, disk_number, 0);			if (ret == ERROR_NOT_READY) {				//	drive is empty -- use this disk				break;			}			else if (ret == ERROR_SUCCESS || ret == ERROR_BUSY) {				//	drive is busy --  try next disk				CloseHandle(hDevice);				disk_number++;			}			else if (ret == ERROR_PATH_NOT_FOUND) {				//	no more drive				//	-- create a new disk				ret = VdkCreateDisk(NULL);				if (ret != ERROR_SUCCESS) {					PrintMessage(MSG_CREATEDISK_NG, disk_number);					printf("%s\n", VdkStatusStr(ret));					return -1;				}				PrintMessage(MSG_CREATEDISK_OK, disk_number);			}			else {				//	unexpected error -- abort operation				PrintMessage(MSG_OPENIMAGE_NG);				printf("%s\n", VdkStatusStr(ret));				return -1;			}		}	}	else {		//	Ensure that another image is not opened		ret = VdkCheckDeviceState(NULL, disk_number, 0);		if (ret != ERROR_NOT_READY) {			PrintMessage(MSG_OPENIMAGE_NG);			printf("%s\n", VdkStatusStr(ret == ERROR_SUCCESS ? ERROR_BUSY : ret));			return -1;		}	}	hDevice = VdkOpenDevice(disk_number, 0);	if (hDevice == INVALID_HANDLE_VALUE) {		ret = GetLastError();		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		return -1;	}	//	//	Create File structure	//	VDiskSetCallBack(VDiskCallback);	ret = VDiskLoadFile(&disk, file_path, NULL);	if (ret != ERROR_SUCCESS || disk == NULL) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret == ERROR_SUCCESS ? ERROR_INVALID_FUNCTION : ret));		goto cleanup;	}	ret = VDiskCreateTree(disk);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	//	//	Create REDO log	//	if (undoable) {		ret = VDiskCreateRedo(&disk);		if (ret != ERROR_SUCCESS) {			PrintMessage(MSG_CREATEREDO_NG);			printf("%s\n", VdkStatusStr(ret));			VDiskDelete(disk);			return -1;		}	}	//	Open the image files	if (undoable || writable) {		access = VDK_DISKTYPE_WRITABLE;	}	else if (writeblock) {		access = VDK_DISKTYPE_WRITEBLOCK;	}	else {		access = VDK_DISKTYPE_READONLY;	}	PrintMessage(MSG_VIRTUAL_DISK, disk_number);	ret = VdkOpen(hDevice, 0, disk, access);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_OPENIMAGE_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	//	//	print file information	//	if ((ret = VdkGetFileInfo(hDevice, 0, &file_info)) != ERROR_SUCCESS) {		PrintMessage(MSG_GET_IMAGE_NG, disk_number);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}	if (file_info) {		PrintFileInfo(file_info);	}	//	//	assign drive letters and print partition info	//	PrintMessage(MSG_PARTITION_HEADER);	assign.disk_number	= disk_number;	assign.part_number	= part_number;	assign.read_only	= (access == VDK_DISKTYPE_READONLY);	assign.drive_letters = drive_letters;	ret = VdkListPartitions(NULL, hDevice, file_info->Capacity, Assign_Callback, &assign);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_GET_PART_NG);		printf("%s\n", VdkStatusStr(ret));		goto cleanup;	}cleanup:	if (hDevice && hDevice != INVALID_HANDLE_VALUE) {		CloseHandle(hDevice);	}	if (file_info) {		VdkFreeMem(file_info);	}	if (disk) {		VDiskDelete(disk);	}	return (ret == ERROR_SUCCESS ? 0 : -1);}////	Close current file(s)//	Command Line Parameters://		disk number or drive letter//#define CLOSE_PROMPT	0#define CLOSE_QUIET		1#define CLOSE_FORCE		2int	Close(char **args){	ULONG	disk_number;	ULONG	max_disk;	CHAR	drive_letter;	ULONG	interact = CLOSE_PROMPT;	DWORD	ret;	if (**args == '*') {		disk_number = (ULONG)-1;		drive_letter = '\0';	}	else if (isdigit(**args)) {		disk_number = atol(*args);		drive_letter = '\0';	}	else if (isalpha(**args)) {		disk_number = (ULONG)-1;		drive_letter = (CHAR)toupper(**args);	}	else {		PrintMessage(MSG_INVALID_DISK, *args);		return -1;	}	if (*(++args)) {		if (!_stricmp(*args, "/q")) {			interact = CLOSE_QUIET;		}		else if (!_stricmp(*args, "/f")) {			interact = CLOSE_FORCE;		}		else {			PrintMessage(MSG_UNKNOWN_OPTION, *args, "CLOSE");			return -1;		}	}	//	ensure that the driver is installed	if (driver_state == VDK_NOT_INSTALLED) {		PrintMessage(MSG_NOT_INSTALLED);		return -1;	}	//	ensure that the driver is running	if (driver_state != SERVICE_RUNNING) {		PrintMessage(MSG_NOT_RUNNING);		return -1;	}	//	get the disk number from the drive letter	if (drive_letter) {		ret = GetDiskFromDrive(drive_letter, &disk_number);		if (ret != ERROR_SUCCESS) {			PrintMessage(MSG_RESOLVE_LINK_NG, drive_letter);			printf("%s\n", VdkStatusStr(ret));			return -1;		}	}	//	Close virtual disk	if (disk_number == (ULONG)-1) {		disk_number = 0;		ret = VdkGetDriverInfo(NULL, &max_disk, NULL, NULL, NULL);		if (ret != ERROR_SUCCESS) {			PrintMessage(MSG_GET_CONFIG_NG);			printf("%s\n", VdkStatusStr(ret));			return -1;		}	}	else {		max_disk = 0;	}	do {		PrintMessage(MSG_CLOSING_DISK, disk_number);		fflush(stdout);		ret = VdkCloseDrive(			disk_number, Retry_Callback, Continue_Callback, (PVOID)interact);		if (ret == ERROR_SUCCESS) {			PrintMessage(MSG_CLOSE_OK);		}		else if (ret == ERROR_NOT_READY) {			PrintMessage(MSG_DEVICE_EMPTY);		}		else if (ret == ERROR_BUSY) {			PrintMessage(MSG_DEVICE_BUSY);		}		else if (!interact || max_disk == 0) {			return -1;		}	}	while (++disk_number < max_disk);	return 0;}////	Assign a drive letter to a partition//	Command Line Parameters://		disk number - required//		partition number - required//		(optional) drive letter - default to first available letter//int	Link(char **args){	ULONG	disk_number;	ULONG	part_number;	char	drive_letter;	DWORD	ret;	//	ensure that the driver is installed	if (driver_state == VDK_NOT_INSTALLED) {		PrintMessage(MSG_NOT_INSTALLED);		return -1;	}	//	ensure that the driver is running	if (driver_state != SERVICE_RUNNING) {		PrintMessage(MSG_NOT_RUNNING);		return -1;	}	//	process command line parameters	if (!isdigit(**args)) {		PrintMessage(MSG_INVALID_DISK, *args);		return -1;	}	disk_number = atol(*(args++));	if (!isdigit(**args)) {		PrintMessage(MSG_INVALID_PART, *args);		return -1;	}	part_number = atol(*(args++));	if (*args) {		if (!isalpha(**args)) {			PrintMessage(MSG_UNKNOWN_OPTION, *args, "LINK");			return -1;		}		drive_letter = **args;	}	else {		drive_letter = ChooseDriveLetter();		if (!isalpha(drive_letter)) {			PrintMessage(MSG_DRIVE_FULL);			return -1;		}	}	drive_letter = (char)toupper(drive_letter);	ret = VdkSetDriveLetter(disk_number, part_number, drive_letter);	if (ret != ERROR_SUCCESS) {		PrintMessage(MSG_LINK_NG, drive_letter, disk_number, part_number);		printf("%s\n", VdkStatusStr(ret));		return -1;	}	PrintMessage(MSG_LINK_OK, drive_letter, disk_number, part_number);	return 0;}////	Remove a drive letter from a partition//	Command Line Parameters://		partition number or drive letter//int	Unlink(char **args){	ULONG	disk_number		= (ULONG)-1;	ULONG	part_number		= (ULONG)-1;	TCHAR	drive_letter	= '\0';	DWORD	ret;	//	ensure that the driver is installed	if (driver_state == VDK_NOT_INSTALLED) {		PrintMessage(MSG_NOT_INSTALLED);		return -1;	}	//	ensure that the driver is running	if (driver_state != SERVICE_RUNNING) {		PrintMessage(MSG_NOT_RUNNING);		return -1;	}	//	process command line parameters	if (isdigit(**args)) {		disk_number = atol(*(args++));		if (!*args) {			PrintMessage(MSG_USAGE_ULINK);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品1区2区| 亚洲男人的天堂在线aⅴ视频| 亚洲综合视频在线观看| 色激情天天射综合网| 亚洲乱码国产乱码精品精小说| 97久久精品人人做人人爽| 亚洲欧美日韩小说| 欧美日韩国产综合一区二区三区 | 日日欢夜夜爽一区| 欧美一区二区三区在线观看视频| 青青草成人在线观看| 久久影院电视剧免费观看| 成人晚上爱看视频| 一区二区三区四区五区视频在线观看| 欧美性大战久久| 久久精品国产免费看久久精品| 亚洲精品一区二区精华| 盗摄精品av一区二区三区| 亚洲一区二区三区不卡国产欧美| 7777精品伊人久久久大香线蕉的 | 久久精品男人的天堂| 成人国产亚洲欧美成人综合网 | 精品一区二区三区视频在线观看| 久久久不卡影院| 欧美性感一区二区三区| 久久不见久久见中文字幕免费| 久久网这里都是精品| 色先锋aa成人| 精品一区二区三区久久| 中文字幕一区二区三区四区不卡| 欧美视频一区二区三区四区| 久久99最新地址| 日韩理论片中文av| 日韩欧美在线123| 91在线一区二区| 激情六月婷婷久久| 国产精品一区二区黑丝| 亚洲一区自拍偷拍| 国产亚洲精品中文字幕| 欧洲av在线精品| 国产福利精品导航| 日韩专区欧美专区| 中文字幕亚洲综合久久菠萝蜜| 欧美高清视频一二三区| 99精品欧美一区二区三区小说 | 亚洲国产毛片aaaaa无费看| 欧美tk—视频vk| 欧美主播一区二区三区| 国产不卡视频在线播放| 日韩av中文字幕一区二区 | 日韩欧美一级精品久久| 色综合久久88色综合天天6 | 亚洲国产精品天堂| 中文字幕亚洲精品在线观看| 日韩三级视频在线看| 在线观看网站黄不卡| 白白色 亚洲乱淫| 国产精品自在欧美一区| 日韩福利电影在线观看| 一区二区三区成人| 一区精品在线播放| 国产欧美精品一区二区色综合朱莉| 在线播放中文一区| 欧美自拍丝袜亚洲| 色网综合在线观看| 91网站在线观看视频| 国产福利91精品一区| 久久精品免费看| 青青草成人在线观看| 日韩制服丝袜av| 日韩在线一区二区三区| 三级久久三级久久久| 夜夜精品浪潮av一区二区三区| 亚洲人成伊人成综合网小说| 亚洲欧洲精品成人久久奇米网| 国产欧美精品国产国产专区| 久久久久九九视频| 日本一区二区三区高清不卡| 久久在线观看免费| 国产午夜精品一区二区| 久久久久国产免费免费 | 国产电影一区二区三区| 韩国欧美国产一区| 国产精品一区二区久激情瑜伽 | 日韩中文字幕av电影| 日本在线不卡视频| 日本人妖一区二区| 精品一区二区三区免费视频| 久久 天天综合| 国产精品2024| 97久久超碰国产精品| 91麻豆精品在线观看| 欧美性猛交xxxxxx富婆| 91麻豆精品国产综合久久久久久| 欧美一区午夜视频在线观看| 精品国产乱码久久久久久浪潮 | 国产精品伦理在线| 专区另类欧美日韩| 婷婷成人综合网| 激情六月婷婷综合| av在线一区二区三区| 欧美四级电影在线观看| 日韩欧美精品在线| 国产三级欧美三级日产三级99| 国产精品三级电影| 亚洲国产日日夜夜| 国产一区欧美一区| 99re在线精品| 欧美一区二区三区影视| 久久久精品天堂| 亚洲最新在线观看| 麻豆视频观看网址久久| 成人激情小说乱人伦| 欧美性色综合网| 久久久久久久久久久久久久久99| 一区二区中文视频| 麻豆国产一区二区| 91美女片黄在线| 26uuu欧美| 亚洲国产精品一区二区久久恐怖片 | 美日韩一区二区三区| 成人激情免费电影网址| 在线电影一区二区三区| 国产亚洲成aⅴ人片在线观看| 亚洲香肠在线观看| 国产成人日日夜夜| 日韩一区二区视频| 怡红院av一区二区三区| 韩国欧美国产1区| 欧美日韩一区 二区 三区 久久精品| 久久久美女毛片| 日韩黄色在线观看| 91黄色免费版| 国产日韩欧美精品一区| 午夜精品一区二区三区免费视频| 国产成人精品免费| 欧美一区二区在线视频| 中文字幕欧美一| 国产精品一区二区免费不卡| 欧美日韩午夜影院| 亚洲日本在线天堂| 成人av综合一区| 久久综合九色综合欧美亚洲| 亚洲午夜精品久久久久久久久| caoporn国产一区二区| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品私人影院| 国产乱人伦精品一区二区在线观看 | 国产一区二区免费看| 欧美日韩黄色影视| 一区二区三区在线视频观看58 | 99精品在线观看视频| 久久综合给合久久狠狠狠97色69| 婷婷综合另类小说色区| 91成人免费在线| 一区二区三区在线播| 一本大道av一区二区在线播放 | 亚洲精品水蜜桃| www.综合网.com| 中文天堂在线一区| 丁香婷婷综合五月| 欧美极品少妇xxxxⅹ高跟鞋| 极品少妇xxxx精品少妇偷拍| 欧美成人三级在线| 久久99国产乱子伦精品免费| 亚洲国产精品t66y| 成人激情综合网站| 日本一区二区三级电影在线观看 | 久久精品亚洲精品国产欧美| 久久国产人妖系列| 欧美一二三在线| 蜜桃视频免费观看一区| 欧美一区二区网站| 国产做a爰片久久毛片| 精品国产a毛片| 国产999精品久久久久久绿帽| 国产日韩欧美麻豆| www.欧美日韩| 亚洲最新视频在线播放| 欧美日韩一卡二卡| 青青草原综合久久大伊人精品| 日韩欧美综合一区| 国内精品自线一区二区三区视频| 久久精品一区四区| 91在线观看成人| 亚洲第一在线综合网站| 91精品免费在线观看| 国内精品久久久久影院薰衣草| 欧美国产成人精品| 在线精品观看国产| 蜜桃av噜噜一区二区三区小说| 精品国产免费一区二区三区香蕉| 国产不卡高清在线观看视频| 中文字幕中文字幕在线一区 | 国产高清无密码一区二区三区| 亚洲国产精品成人综合色在线婷婷| av福利精品导航| 丝袜美腿一区二区三区| 精品久久久久久久久久久久包黑料| 成人午夜激情片|