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

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

?? chkdsk.c

?? chkdskx and formatx
?? 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一区二区三区免费野_久草精品视频
亚洲一区视频在线观看视频| 五月天久久比比资源色| 香蕉影视欧美成人| 国产福利91精品一区| 欧美日韩免费电影| 国产精品久久久久久户外露出| 五月天激情小说综合| 成人午夜av在线| 日韩免费一区二区三区在线播放| 亚洲欧美另类图片小说| 国产在线精品一区二区| 欧美日本乱大交xxxxx| 亚洲色图色小说| 国产精品资源站在线| 日韩精品资源二区在线| 亚洲国产综合人成综合网站| 成人app下载| 久久久久久久性| 激情综合色综合久久| 欧美乱熟臀69xxxxxx| 亚洲综合无码一区二区| 色综合天天综合色综合av| 国产欧美日本一区二区三区| 国产一区视频在线看| 日韩一卡二卡三卡四卡| 另类小说一区二区三区| 日韩一区二区免费高清| 久久精品国产999大香线蕉| 精品视频在线看| 午夜精品福利久久久| 欧美日韩一二三| 亚洲成人在线免费| 精品视频在线视频| 日韩制服丝袜av| 欧美精品久久99久久在免费线 | 91麻豆swag| 中文字幕亚洲不卡| 99热这里都是精品| 亚洲精品一二三| 欧美性大战久久久久久久蜜臀| 亚洲精品视频一区| 欧美午夜电影一区| 日韩av一二三| 精品日产卡一卡二卡麻豆| 久久99国产精品尤物| 久久只精品国产| 不卡av在线免费观看| 亚洲欧美经典视频| 3atv一区二区三区| 国产一区二区看久久| 最新日韩av在线| 欧美特级限制片免费在线观看| 丝袜脚交一区二区| 精品精品欲导航| 99国产精品国产精品毛片| 一区二区三区在线观看网站| 欧美精品色综合| 韩日av一区二区| 亚洲天天做日日做天天谢日日欢 | 亚洲精品国产无天堂网2021| 欧美人牲a欧美精品| 美女一区二区三区在线观看| 久久久五月婷婷| 日本道色综合久久| 美女任你摸久久| 最新国产精品久久精品| 欧美美女一区二区三区| 国产ts人妖一区二区| 亚洲自拍偷拍网站| 国产日韩一级二级三级| 欧美性大战久久| 国产传媒欧美日韩成人| 亚洲午夜国产一区99re久久| 国产亚洲制服色| 欧美老女人第四色| 盗摄精品av一区二区三区| 日日夜夜免费精品| 亚洲素人一区二区| 久久综合网色—综合色88| 在线影院国内精品| 国产成人超碰人人澡人人澡| 视频在线观看91| 国产精品视频一区二区三区不卡 | 免费成人性网站| 久久精品视频一区二区三区| 色综合一个色综合亚洲| 秋霞电影一区二区| 亚洲视频一区二区免费在线观看| 欧美日韩国产综合一区二区三区| 九九精品一区二区| 亚洲狼人国产精品| 日韩欧美资源站| 国产一区二区在线影院| 调教+趴+乳夹+国产+精品| 久久久另类综合| 欧美日本国产视频| 成人av影院在线| 另类中文字幕网| 一区二区三区.www| 日韩西西人体444www| 欧美性高清videossexo| 国产 欧美在线| 蜜芽一区二区三区| 一区二区在线观看视频在线观看| 2019国产精品| 欧美一级久久久| 欧美日韩一区三区四区| 国产成人精品免费网站| 精品制服美女丁香| 午夜免费久久看| 日韩av高清在线观看| 玉足女爽爽91| 中文字幕一区二区三区色视频| 精品免费一区二区三区| 欧美一级爆毛片| 欧美日韩精品欧美日韩精品一 | 欧美日韩视频在线观看一区二区三区| 国产综合久久久久影院| 久久99久久久久| 洋洋成人永久网站入口| 久久久久久夜精品精品免费| 精品免费日韩av| 精品久久久久av影院| 日韩亚洲欧美成人一区| 在线电影欧美成精品| 91啪九色porn原创视频在线观看| 国产久卡久卡久卡久卡视频精品| 日本不卡123| 五月天久久比比资源色| 亚洲午夜精品网| 亚洲一区在线视频观看| 亚洲高清三级视频| 性做久久久久久久免费看| 午夜电影久久久| 青青草原综合久久大伊人精品| 午夜精品久久久久影视| 夜夜精品视频一区二区| 午夜一区二区三区在线观看| 亚洲综合精品久久| 亚洲成a人v欧美综合天堂 | 在线观看91av| 久久精品一区二区三区av| 久久色在线视频| 国产精品女上位| 中文字幕一区在线观看视频| 亚洲视频一区二区在线| 中文字幕在线免费不卡| 日韩av二区在线播放| 精品影视av免费| 丰满亚洲少妇av| 91视频在线看| 欧美日韩亚洲综合在线| 欧美亚洲动漫另类| 久久久久久久久久久黄色| 中文字幕一区二区三区精华液 | ww亚洲ww在线观看国产| 一区二区三区欧美| 亚洲一区二区成人在线观看| 日韩在线观看一区二区| 亚洲综合免费观看高清完整版| 久久精品99国产精品| 成人小视频在线| 91老师国产黑色丝袜在线| 91麻豆精品国产91久久久久久久久 | 国产精品中文字幕欧美| 91在线播放网址| 欧美一级欧美三级| 中文字幕精品在线不卡| 亚洲精品免费在线观看| 丝袜诱惑亚洲看片| 日韩高清一级片| 在线免费av一区| 2021国产精品久久精品| 一区二区三区在线观看动漫| 久久黄色级2电影| 一本大道久久a久久精二百| 91久久精品一区二区三区| 中文字幕不卡的av| 日韩成人一区二区三区在线观看| 成人性生交大合| 欧美一二三区在线| 亚洲精品欧美在线| 蜜桃久久久久久久| 欧美精品三级在线观看| 亚洲男人的天堂一区二区| 国产一区久久久| 欧美日韩一区二区三区四区五区 | 五月天网站亚洲| 99久久99久久免费精品蜜臀| 日韩一卡二卡三卡四卡| 亚洲成人综合网站| 99久久综合精品| 国产精品久久久久一区二区三区共| 日韩和的一区二区| 91美女视频网站| 中文字幕不卡的av| 狠狠网亚洲精品| 欧美视频你懂的| 天天影视涩香欲综合网| 欧美午夜免费电影|