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

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

?? chkdsk.c

?? 格式化磁盤和磁盤檢測代碼
?? C
字號:
//======================================================================
//
// Chkdskx
//
// By Mark Russinovich
// Systems Internals
// http://www.sysinternals.com
//
// Chkdsk clone that demonstrates the use of the FMIFS file system
// utility library.
//
//======================================================================
#include <windows.h>
#include <stdio.h>
#include "..\fmifs.h"
#define _UNICODE 1
#include "tchar.h"

//
// Globals
//
BOOL	Error = FALSE;

// switches
BOOL	FixErrors = FALSE;
BOOL	SkipClean = FALSE;
BOOL	ScanSectors = FALSE;
BOOL	Verbose = FALSE;
PWCHAR  Drive = NULL;
WCHAR	  CurrentDirectory[1024];

//
// FMIFS function
//
PCHKDSK   Chkdsk;


//----------------------------------------------------------------------
//
// PrintWin32Error
//
// Takes the win32 error code and prints the text version.
//
//----------------------------------------------------------------------
void PrintWin32Error( PWCHAR Message, DWORD ErrorCode )
{
	LPVOID lpMsgBuf;
 
	FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
					NULL, ErrorCode, 
					MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
					(PWCHAR) &lpMsgBuf, 0, NULL );
	_tprintf(L"%s: %s\n", Message, lpMsgBuf );
	LocalFree( lpMsgBuf );
}

//--------------------------------------------------------------------
//
// CtrlCIntercept
//
// Intercepts Ctrl-C's so that the program can't be quit with the
// disk in an inconsistent state.
//
//--------------------------------------------------------------------
BOOL WINAPI CtrlCIntercept( DWORD dwCtrlType )
{
	//
	// Handle the event so that the default handler doesn't
	//
	return TRUE;
}


//----------------------------------------------------------------------
// 
// Usage
//
// Tell the user how to use the program
//
//----------------------------------------------------------------------
VOID Usage( PWCHAR ProgramName )
{
	_tprintf(L"Usage: %s [drive:] [-F] [-V] [-R] [-C]\n\n");
	_tprintf(L"  [drive:]    Specifies the drive to check.\n");
	_tprintf(L"  -F          Fixes errors on the disk.\n");
	_tprintf(L"  -V          Displays the full path of every file on the disk.\n");
	_tprintf(L"  -R          Locates bad sectors and recovers readable information.\n");
	_tprintf(L"  -C          Checks the drive only if it is dirty.\n");
	_tprintf(L"\n");
}


//----------------------------------------------------------------------
//
// ParseCommandLine
//
// Get the switches.
//
//----------------------------------------------------------------------
int ParseCommandLine( int argc, WCHAR *argv[] )
{
	int i;
	BOOLEAN gotFix = FALSE;
	BOOLEAN gotVerbose = FALSE;
	BOOLEAN gotClean = FALSE;
	BOOLEAN gotScan = FALSE;


	for( i = 1; i < argc; i++ ) {

		switch( argv[i][0] ) {

		case '-':
		case '/':

			switch( argv[i][1] ) {

			case L'F':
			case L'f':

				if( gotFix ) return i;
				FixErrors = TRUE;
				gotFix = TRUE;
				break;

			case L'V':
			case L'v':

				if( gotVerbose) return i;
				Verbose = TRUE;
				gotVerbose = TRUE;
				break;

			case L'R':
			case L'r':

				if( gotFix ) return i;
				ScanSectors = TRUE;
				gotFix = TRUE;
				break;

			case L'C':
			case L'c':

				if( gotClean ) return i;
				SkipClean = TRUE;
				gotClean = TRUE;
				break;

			default:
				return i;
			}
			break;

		default:

			if( Drive ) return i;
			if( argv[i][1] != L':' ) return i;

			Drive = argv[i];
			break;
		}
	}
	return 0;
}


//----------------------------------------------------------------------
//
// ChkdskCallback
//
// The file system library will call us back with commands that we
// can interpret. If we wanted to halt the chkdsk we could return FALSE.
//
//----------------------------------------------------------------------
BOOLEAN __stdcall ChkdskCallback( CALLBACKCOMMAND Command, DWORD Modifier, PVOID Argument )
{
	PDWORD percent;
	PBOOLEAN status;
	PTEXTOUTPUT output;

	// 
	// We get other types of commands, but we don't have to pay attention to them
	//
	switch( Command ) {

	case PROGRESS:
		percent = (PDWORD) Argument;
		_tprintf(L"%d percent completed.\r", *percent);
		break;

	case OUTPUT:
		output = (PTEXTOUTPUT) Argument;
		fprintf(stdout, "%s", output->Output);
		break;

	case DONE:
		status = (PBOOLEAN) Argument;
		if( *status == TRUE ) {

			_tprintf(L"Chkdsk was unable to complete successfully.\n\n");
			Error = TRUE;
		}
		break;
	}
	return TRUE;
}


//----------------------------------------------------------------------
//
// LoadFMIFSEntryPoints
//
// Loads FMIFS.DLL and locates the entry point(s) we are going to use
//
//----------------------------------------------------------------------
BOOLEAN LoadFMIFSEntryPoints()
{
	LoadLibrary( "fmifs.dll" );

	if( !(Chkdsk = (void *) GetProcAddress( GetModuleHandle( "fmifs.dll"),
			"Chkdsk" )) ) {

		return FALSE;
	}
	return TRUE;
}


//----------------------------------------------------------------------
// 
// WMain
//
// Engine. Just get command line switches and fire off a chkdsk. This 
// could also be done in a GUI like Explorer does when you select a 
// drive and run a check on it.
//
// We do this in UNICODE because the chkdsk command expects PWCHAR
// arguments.
//
//----------------------------------------------------------------------
int wmain( int argc, WCHAR *argv[] )
{
	int badArg;
	HANDLE volumeHandle;
	WCHAR fileSystem[1024];
	WCHAR volumeName[1024];
	DWORD serialNumber;
	DWORD flags, maxComponent;

	_tprintf(L"\nChkdskx v1.0 by Mark Russinovich\n");
	_tprintf(L"Systems Internals - http://www.sysinternals.com\n\n");

	//
	// Get function pointers
	//
	if( !LoadFMIFSEntryPoints()) {

		_tprintf(L"Could not located FMIFS entry points.\n\n");
		return -1;
	}

	//
	// Parse command line
	//
	if( (badArg = ParseCommandLine( argc, argv ))) {

		_tprintf(L"Unknown argument: %s\n", argv[badArg] );

		Usage(argv[0]);
		return -1;
	}

	// 
	// Get the drive's format
	//
	if( !Drive ) {

		if( !GetCurrentDirectoryW( sizeof(CurrentDirectory), CurrentDirectory )) {

			PrintWin32Error( L"Could not get current directory", GetLastError());
			return -1;
		}

	} else {

		wcscpy( CurrentDirectory, Drive );
	}
	CurrentDirectory[2] = L'\\';
	CurrentDirectory[3] = (WCHAR) 0;
	Drive = CurrentDirectory;

	//
	// Determine the drive's file system format, which we need to 
	// tell chkdsk
	//
	if( !GetVolumeInformationW( Drive, 
						volumeName, sizeof(volumeName), 
						&serialNumber, &maxComponent, &flags, 
						fileSystem, sizeof(fileSystem))) {

		PrintWin32Error( L"Could not query volume", GetLastError());
		return -1;
	}

	//
	// If they want to fix, we need to have access to the drive
	//
	if( FixErrors ) {

		swprintf( volumeName, L"\\\\.\\%C:", Drive[0] );
		volumeHandle = CreateFileW( volumeName, GENERIC_WRITE, 
						0, NULL, OPEN_EXISTING, 
						0, 0 );
		if( volumeHandle == INVALID_HANDLE_VALUE ) {

			_tprintf(L"Chdskx cannot run because the volume is in use by another process.\n\n");
			return -1;
		}
		CloseHandle( volumeHandle );

		//
		// Can't let the user break out of a chkdsk that can modify the drive
		//
		SetConsoleCtrlHandler( CtrlCIntercept, TRUE );
	}

	//
	// Just do it
	//
	_tprintf(L"The type of file system is %s.\n", fileSystem );
	Chkdsk( Drive, fileSystem, FixErrors, Verbose, SkipClean, ScanSectors,
				NULL, NULL, ChkdskCallback );

	if( Error ) return -1;
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色欧美a在线播放| 一个色妞综合视频在线观看| 日本韩国欧美一区| 麻豆中文一区二区| 亚洲精品一二三区| 久久久精品中文字幕麻豆发布| 色欧美片视频在线观看| 美女视频一区二区三区| 亚洲女爱视频在线| 老司机精品视频线观看86| 91在线国产福利| 亚洲午夜免费福利视频| 欧美一区二区三区日韩| 69堂国产成人免费视频| 一本久久a久久免费精品不卡| 久久爱www久久做| 亚洲高清不卡在线| 中文久久乱码一区二区| 精品国产免费人成在线观看| 在线影院国内精品| 国产69精品久久777的优势| 男男gaygay亚洲| 欧美高清精品3d| 国产精品国产精品国产专区不蜜| 国产精品一区在线观看乱码| 国产色产综合色产在线视频| 国产成人av电影在线观看| 麻豆国产精品官网| 韩国女主播一区| 奇米色一区二区三区四区| 麻豆国产91在线播放| 首页亚洲欧美制服丝腿| 日韩高清不卡一区| 图片区小说区国产精品视频| 最新热久久免费视频| 国产精品热久久久久夜色精品三区| 欧美电影精品一区二区| 欧美唯美清纯偷拍| 久久精品二区亚洲w码| 午夜精品在线看| 国产精品护士白丝一区av| 亚洲欧美国产毛片在线| 一区二区三区在线影院| 亚洲一区二区在线免费看| 亚洲伦理在线免费看| 日韩美女啊v在线免费观看| 亚洲手机成人高清视频| 国产精品久久久久久久久晋中 | 中文字幕视频一区二区三区久| 日本一区二区三区在线不卡| 中文字幕国产一区| 亚洲国产日韩a在线播放性色| 亚洲乱码精品一二三四区日韩在线| 亚洲成年人影院| 亚洲综合区在线| 亚洲第一久久影院| 亚洲成人免费电影| 天堂成人免费av电影一区| 日本一道高清亚洲日美韩| 精品一区二区久久久| 成人综合日日夜夜| 99国产精品久| 91精品国产手机| 欧美va亚洲va| 综合激情网...| 亚洲一区二区三区四区在线观看| 天天色综合天天| 精品在线观看免费| 99精品国产99久久久久久白柏| 白白色 亚洲乱淫| 欧美老人xxxx18| 久久久久久99久久久精品网站| 中文字幕中文在线不卡住| 亚洲综合成人网| 免费成人深夜小野草| 久久99国产精品麻豆| av电影在线观看一区| 欧美在线播放高清精品| 欧美精品丝袜中出| 日韩午夜激情视频| 精品一区二区三区日韩| 国产sm精品调教视频网站| 成人性生交大片免费看中文网站| 成人免费视频免费观看| 激情成人午夜视频| 高清成人免费视频| 91网站最新地址| 精品一区在线看| 国产精品亚洲视频| 91免费看`日韩一区二区| 日韩天堂在线观看| 一区二区中文字幕在线| 欧美96一区二区免费视频| 不卡一区二区三区四区| 欧美综合一区二区| 久久天天做天天爱综合色| 国产精品高潮呻吟| 日本欧美加勒比视频| 国产91对白在线观看九色| 欧美日本精品一区二区三区| 日韩美女视频一区| 麻豆精品国产91久久久久久| 色天天综合久久久久综合片| 精品国产一区二区三区久久影院| 三级成人在线视频| 波多野结衣视频一区| 日韩欧美激情一区| 亚洲va天堂va国产va久| 北条麻妃国产九九精品视频| 精品少妇一区二区三区在线播放 | 狠狠色伊人亚洲综合成人| 99精品偷自拍| 欧美一区二区视频网站| 一区二区三区色| 丝袜国产日韩另类美女| 在线看国产一区二区| 一区二区三区**美女毛片| 欧美一区二区人人喊爽| 91免费国产在线| 婷婷六月综合亚洲| 视频在线观看91| 亚洲精品欧美激情| 久久久国产午夜精品 | 精品视频资源站| 国产mv日韩mv欧美| 丁香六月久久综合狠狠色| 激情偷乱视频一区二区三区| 免费观看久久久4p| 亚洲综合一区在线| 亚洲男人的天堂av| 亚洲乱码国产乱码精品精98午夜 | 日日噜噜夜夜狠狠视频欧美人 | 亚洲综合丁香婷婷六月香| 国产精品成人免费| 亚洲色图第一区| 中文字幕一区二区三区av| 国产日韩精品一区二区三区在线| 精品国产精品网麻豆系列| 精品国内二区三区| wwwwww.欧美系列| 久久久亚洲精品石原莉奈| 亚洲精品在线免费播放| 国产色产综合色产在线视频 | 国产农村妇女精品| 亚洲欧美日韩系列| 日本不卡123| 成人av网站免费观看| av在线不卡免费看| 欧美偷拍一区二区| 精品国产成人在线影院 | 欧美视频中文一区二区三区在线观看| 欧美亚洲另类激情小说| 欧美福利视频一区| 亚洲一区二区三区激情| 9i在线看片成人免费| 久久品道一品道久久精品| 亚洲最大成人综合| 国产成人免费视| 久久综合精品国产一区二区三区| 亚洲电影视频在线| 99久久精品国产麻豆演员表| 99久久国产综合精品麻豆| 亚洲美女免费视频| 日本欧美大码aⅴ在线播放| 久久99精品久久久久久| 欧美绝品在线观看成人午夜影视| 久久久美女毛片 | 欧美国产综合一区二区| 亚洲国产视频直播| 成人app在线| 国产日韩欧美在线一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 91美女在线观看| 欧美激情一区二区三区蜜桃视频 | 一区二区三区av电影| eeuss鲁片一区二区三区在线看| 欧美精品久久天天躁| 一区二区三区在线免费播放| 9人人澡人人爽人人精品| 国产女同互慰高潮91漫画| 亚洲一区中文日韩| 欧美日韩成人综合| 亚洲精品视频在线| 色婷婷综合久久久中文一区二区| 欧美高清一级片在线观看| 国产伦精品一区二区三区在线观看| 欧美亚洲综合在线| 97se亚洲国产综合自在线不卡 | 国产一区二区三区黄视频 | 亚洲四区在线观看| 国产精品免费久久久久| 国产成人亚洲精品青草天美| 日韩免费高清av| 国产毛片一区二区| 欧美精品一区二区蜜臀亚洲| 成人激情综合网站| 一个色在线综合| 欧美久久一二区| 老汉av免费一区二区三区| 久久久噜噜噜久久人人看 |