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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vdkwin32.c

?? Virtual Disk Driver
?? C
字號:
/*	vdkwin32.c	VDK Win32 user application utility routines	Copyright (C) 2003 Ken Kato*/#include "vdkbase.h"#include "vdkutil.h"//// convert given path to absolute path//VDKSTAT VdkFullPath(	PCHAR	FullPath,	ULONG	BufSize,	PCHAR	FileName){	ULONG len = GetFullPathName(FileName, BufSize, FullPath, &FileName);	if (!len) {		return GetLastError();	}	if (!FileName || !*FileName) {		return VDK_PARAM;	}	return VDK_OK;}////	seek file//VDKSTAT VdkSeekFile(	HANDLE	FileHandle,	INT64	Offset){	LARGE_INTEGER loffset;	DWORD err;	loffset.QuadPart = Offset;	loffset.LowPart = SetFilePointer(		FileHandle,		loffset.LowPart,		&loffset.HighPart,		FILE_BEGIN);	if (loffset.LowPart == INVALID_SET_FILE_POINTER &&		(err = GetLastError()) != ERROR_SUCCESS) {		VDKTRACE(0,("[VDK] SetFilePointer - %s\n", VdkStatusStr(err)));		return err;	}	return ERROR_SUCCESS;}////	Open file//VDKSTAT	VdkOpenFile(	HANDLE	*FileHandle,	PCHAR	FileName,	ULONG	NameLen,	ULONG	ReadOnly){	TCHAR buf[MAX_PATH];	if (NameLen >= sizeof(buf)) {		NameLen = sizeof(buf) - 1;	}	memcpy(buf, FileName, NameLen);	buf[NameLen] = '\0';	*FileHandle = CreateFile(		buf,		ReadOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE),		ReadOnly ? FILE_SHARE_READ : 0,		NULL,		OPEN_EXISTING,		FILE_ATTRIBUTE_NORMAL,		NULL);	if (*FileHandle == INVALID_HANDLE_VALUE) {		DWORD err = GetLastError();		VDKTRACE(0,("[VDK] CreateFile\"%s\" - %s\n", buf, VdkStatusStr(err)));		return err;	}	return ERROR_SUCCESS;}////	create a new file//VDKSTAT	VdkCreateFile(	HANDLE	*FileHandle,	PCHAR	FileName,	BOOL	Force){	*FileHandle = CreateFile(		FileName,		(GENERIC_READ | GENERIC_WRITE),		0,		NULL,		Force ? CREATE_ALWAYS : CREATE_NEW,		FILE_ATTRIBUTE_NORMAL,		NULL);	if (*FileHandle == INVALID_HANDLE_VALUE) {		DWORD err = GetLastError();		VDKTRACE(0,("[VDK] CreateFile - %s\n", VdkStatusStr(err)));		return err;	}	return ERROR_SUCCESS;}////	check file attributes//VDKSTAT VdkCheckAttribute(	HANDLE			FileHandle){	BY_HANDLE_FILE_INFORMATION info;	if (!GetFileInformationByHandle(FileHandle, &info)) {		DWORD err = GetLastError();		VDKTRACE(0,			("[VDK] GetFileInformationByHandle - %s\n",			VdkStatusStr(err)));		return err;	}	if (info.dwFileAttributes & VDK_INVALID_ATTRIBUTES) {		VDKTRACE(0,("[VDK] File is compressed and/or encrypted\n"));		return ERROR_ACCESS_DENIED;	}	return ERROR_SUCCESS;}////	get file size//VDKSTAT	VdkGetFileSize(	HANDLE	FileHandle,	PINT64	FileSize){	ULARGE_INTEGER size;	DWORD err;	size.LowPart = GetFileSize(FileHandle, &size.HighPart);	if (size.LowPart == INVALID_FILE_SIZE &&		(err = GetLastError()) != ERROR_SUCCESS) {		VDKTRACE(0,("[VDK] GetFileSize - %s\n", VdkStatusStr(err)));		return err;	}	*FileSize = size.QuadPart;	return ERROR_SUCCESS;}////	write to file at offset//VDKSTAT	VdkWriteFileAt(	HANDLE			FileHandle,	INT64			Offset,	PVOID			Buffer,	ULONG			Length,	PULONG			Result){	DWORD err = ERROR_SUCCESS;	if (Offset != -1) {		err = VdkSeekFile(FileHandle, Offset);		if (err != ERROR_SUCCESS) {			return err;		}	}	if (WriteFile(FileHandle, Buffer, Length, &Length, NULL)) {		if (Result) {			*Result = Length;		}	}	else {		err = GetLastError();		VDKTRACE(VDKWRITE,("[VDK] WriteFile - %s\n", VdkStatusStr(err)));	}	return err;}////	read from file at offset//VDKSTAT VdkReadFileAt(	HANDLE			FileHandle,	INT64			Offset,	PVOID			Buffer,	ULONG			Length,	PULONG			Result){	DWORD err = ERROR_SUCCESS;	if (Offset != -1) {		err = VdkSeekFile(FileHandle, Offset);		if (err != ERROR_SUCCESS) {			return err;		}	}	if (ReadFile(FileHandle, Buffer, Length, &Length, NULL)) {		if (Result) {			*Result = Length;		}	}	else {		err = GetLastError();		VDKTRACE(VDKREAD,("[VDK] ReadFile - %s\n", VdkStatusStr(err)));	}	return err;}//// Adjust file size//VDKSTAT VdkSetFileSize(	HANDLE	FileHandle,	INT64	FileSize){	DWORD err;	err = VdkSeekFile(		FileHandle, FileSize);	if (err != ERROR_SUCCESS) {		return err;	}	if (!SetEndOfFile(FileHandle)) {		err = GetLastError();		VDKTRACE(0,("[VDK] SetEndOfFile - %s\n", VdkStatusStr(err)));		return err;	}	return ERROR_SUCCESS;}////	get status string//const char *VdkStatusStr(	VDKSTAT			Status){	static char buf[512];	DWORD len = FormatMessage(		FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,		NULL, Status, 0, buf, sizeof(buf), NULL);	while (len && (buf[len - 1] == '\n' || buf[len - 1] == '\r')) {		buf[--len] = '\0';	}	return buf;}////	print message to stdout//void PrintMessage(DWORD msg,...){	va_list args;	LPTSTR	buf = NULL;	va_start(args, msg);	FormatMessage(		FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ALLOCATE_BUFFER,		NULL, msg, 0, (LPTSTR)&buf, 0, &args);	va_end(args);	if (buf) {		printf("%s", buf);		LocalFree(buf);	}}////	Display prompt and accept answer//int InputChar(DWORD prompt, const char *accept){	int c;	LPTSTR	buf = NULL;	FormatMessage(		FORMAT_MESSAGE_FROM_HMODULE |		FORMAT_MESSAGE_ALLOCATE_BUFFER |		FORMAT_MESSAGE_IGNORE_INSERTS,		NULL, prompt, 0, (LPTSTR)&buf, 0, NULL);	do {		if (buf) {			printf("%s", buf);		}		else {			printf(accept);		}		fflush(stdout);		fflush(stdin);		c = tolower(getchar());	}	while (!strchr(accept, c));	if (buf) {		LocalFree(buf);	}	return c;}#ifdef VDK_DEBUG////	Debug trace function//extern unsigned long	TraceFlags	= 0;extern const char		*TraceFile	= 0;extern unsigned long	TraceLine	= 0;void VdkTrace(const char *format,...){	char buf1[512], buf2[512];	va_list args;	va_start(args, format);	_vsnprintf(buf1, sizeof(buf1), format, args);	va_end(args);	_snprintf(buf2, sizeof(buf2), "%s(%lu): %s",		TraceFile, TraceLine, buf1);	OutputDebugString(buf2);}#endif	// VDK_DEBUG

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费的视频| 精品乱码亚洲一区二区不卡| 欧美日韩精品是欧美日韩精品| 欧美一区二区三区视频在线| 日本一区二区三区四区在线视频| 亚洲综合色视频| 丁香六月久久综合狠狠色| 欧美日韩aaa| 国产精品毛片高清在线完整版| 日本在线不卡一区| 在线观看视频欧美| 亚洲国产精华液网站w| 久久精品国产一区二区三| 日本韩国精品在线| 国产精品久久久久久久久免费相片| 日韩精品视频网站| 欧美性生活久久| 成人欧美一区二区三区白人 | 欧洲av在线精品| 国产日韩精品久久久| 精一区二区三区| 91精品国产综合久久福利软件| 亚洲bt欧美bt精品777| 毛片av一区二区三区| 色婷婷综合激情| 亚洲欧美日韩精品久久久久| 国产99久久久精品| 2023国产精品视频| 精品一区二区三区视频 | 欧美一区二区三区电影| 亚洲免费观看在线视频| 波多野结衣在线一区| 国产精品五月天| 成人av影院在线| 国产精品久久久一本精品| 成人免费毛片片v| 国产精品不卡在线| 一本色道综合亚洲| 亚洲综合清纯丝袜自拍| 欧美综合久久久| 亚洲mv大片欧洲mv大片精品| 欧美做爰猛烈大尺度电影无法无天| 亚洲综合免费观看高清完整版在线| 91丨九色丨尤物| 亚洲自拍偷拍av| 3d成人h动漫网站入口| 蜜臀精品一区二区三区在线观看| 亚洲综合色自拍一区| 欧美影院精品一区| 亚洲成人av中文| 日韩视频免费直播| 国内精品写真在线观看| 国产精品网站一区| 色一情一伦一子一伦一区| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美在线制服丝袜| 亚洲成人黄色影院| 久久久一区二区三区| 成人av影视在线观看| 亚洲一区二区三区美女| 日韩午夜小视频| 成人午夜电影网站| 亚洲午夜免费视频| 亚洲精品一区二区三区影院| 国产ts人妖一区二区| 亚洲一区成人在线| 久久久久久久综合| 欧洲在线/亚洲| 国产真实精品久久二三区| 亚洲三级小视频| 日韩欧美成人激情| 91色乱码一区二区三区| 免费人成在线不卡| 国产精品家庭影院| 日韩免费观看2025年上映的电影 | 色综合久久天天综合网| 日本特黄久久久高潮| 中文字幕亚洲精品在线观看| 欧美日韩一区不卡| 成人av影院在线| 久久精品国产久精国产爱| 亚洲男同1069视频| 欧美精品一区二区三区视频| 在线精品视频免费观看| 国产suv一区二区三区88区| 亚洲成av人片在线| 亚洲欧美一区二区久久 | 亚洲欧美日韩一区| 日韩一级片网址| 一本色道亚洲精品aⅴ| 国产精品69毛片高清亚洲| 日日夜夜一区二区| 亚洲精品老司机| 国产免费久久精品| 精品伦理精品一区| 91精品国产综合久久精品麻豆| 成人的网站免费观看| 狠狠狠色丁香婷婷综合激情 | 久久综合狠狠综合| 欧美电影在哪看比较好| 日本久久精品电影| 不卡一区在线观看| 国产精品一区二区三区网站| 石原莉奈在线亚洲三区| 夜夜爽夜夜爽精品视频| 18欧美乱大交hd1984| 2020日本不卡一区二区视频| 日韩一区二区免费高清| 欧美顶级少妇做爰| 欧美精品日韩一本| 欧美日韩精品一二三区| 欧美偷拍一区二区| 欧美视频一区二区三区四区| 色婷婷久久久久swag精品 | 国产精品12区| 国产自产视频一区二区三区| 狠狠色综合色综合网络| 经典三级视频一区| 韩国欧美一区二区| 国产一区二区调教| 国产精品99久| www.亚洲人| 色婷婷一区二区| 欧美天天综合网| 在线播放视频一区| 日韩一区二区三区免费观看| 日韩精品影音先锋| 欧美激情在线观看视频免费| 国产精品午夜免费| 亚洲美女区一区| 天堂午夜影视日韩欧美一区二区| 亚洲国产日日夜夜| 久热成人在线视频| 丰满少妇久久久久久久| 99国产精品99久久久久久| 色哟哟一区二区三区| 欧美人牲a欧美精品| 亚洲成av人片一区二区梦乃| 天天色 色综合| 精品伊人久久久久7777人| 丁香六月综合激情| 色94色欧美sute亚洲线路二| 日韩一区二区在线看| 久久久高清一区二区三区| 国产精品三级久久久久三级| 亚洲日本一区二区三区| 五月天激情综合| 国产精品1区2区| 欧美性视频一区二区三区| 欧美电视剧在线看免费| 中文字幕综合网| 蜜桃一区二区三区在线观看| 高潮精品一区videoshd| 欧美最新大片在线看| 精品国产免费久久 | 久久精品一区四区| 亚洲男人的天堂在线aⅴ视频| 亚洲成精国产精品女| 国产精品18久久久久久久久| 在线观看视频一区| 国产日韩欧美不卡在线| 亚洲第一福利视频在线| 成人在线综合网站| 6080日韩午夜伦伦午夜伦| 国产精品久久久久久亚洲伦 | 欧美日韩国产区一| 国产丝袜在线精品| 欧美中文字幕一区| 国产无人区一区二区三区| 石原莉奈在线亚洲三区| 91免费视频网| 国产日本欧美一区二区| 日韩国产成人精品| 在线免费不卡电影| 国产精品国产三级国产普通话三级| 美女性感视频久久| 欧美日韩精品欧美日韩精品一| 中文字幕一区日韩精品欧美| 国内精品写真在线观看| 欧美精品xxxxbbbb| 亚洲午夜精品网| 色婷婷激情综合| 国产精品久线观看视频| 国产麻豆精品在线| 欧美mv日韩mv亚洲| 麻豆91小视频| 日韩一区二区在线看| 日产精品久久久久久久性色| 欧洲一区二区三区在线| 亚洲人成精品久久久久| 成人av电影在线网| 中文字幕+乱码+中文字幕一区| 精彩视频一区二区三区| 精品动漫一区二区三区在线观看| 午夜影院久久久| 这里只有精品99re| 日欧美一区二区| 日韩欧美亚洲国产精品字幕久久久| 午夜视频在线观看一区二区三区 | 国产不卡视频一区二区三区|