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

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

?? main.cpp

?? 《Windows驅動開發技術詳解》隨書源碼
?? CPP
字號:
#include <windows.h>  
#include <winsvc.h>  
#include <conio.h>  
#include <stdio.h>

#define DRIVER_NAME "HelloDDK"
#define DRIVER_PATH "..\\MyDriver\\MyDriver_Check\\HelloDDK.sys"

//裝載NT驅動程序
BOOL LoadNTDriver(char* lpszDriverName,char* lpszDriverPath)
{
	char szDriverImagePath[256];
	//得到完整的驅動路徑
	GetFullPathName(lpszDriverPath, 256, szDriverImagePath, NULL);

	BOOL bRet = FALSE;

	SC_HANDLE hServiceMgr=NULL;//SCM管理器的句柄
	SC_HANDLE hServiceDDK=NULL;//NT驅動程序的服務句柄

	//打開服務控制管理器
	hServiceMgr = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );

	if( hServiceMgr == NULL )  
	{
		//OpenSCManager失敗
		printf( "OpenSCManager() Faild %d ! \n", GetLastError() );
		bRet = FALSE;
		goto BeforeLeave;
	}
	else
	{
		////OpenSCManager成功
		printf( "OpenSCManager() ok ! \n" );  
	}

	//創建驅動所對應的服務
	hServiceDDK = CreateService( hServiceMgr,
		lpszDriverName, //驅動程序的在注冊表中的名字  
		lpszDriverName, // 注冊表驅動程序的 DisplayName 值  
		SERVICE_ALL_ACCESS, // 加載驅動程序的訪問權限  
		SERVICE_KERNEL_DRIVER,// 表示加載的服務是驅動程序  
		SERVICE_DEMAND_START, // 注冊表驅動程序的 Start 值  
		SERVICE_ERROR_IGNORE, // 注冊表驅動程序的 ErrorControl 值  
		szDriverImagePath, // 注冊表驅動程序的 ImagePath 值  
		NULL,  
		NULL,  
		NULL,  
		NULL,  
		NULL);  

	DWORD dwRtn;
	//判斷服務是否失敗
	if( hServiceDDK == NULL )  
	{  
		dwRtn = GetLastError();
		if( dwRtn != ERROR_IO_PENDING && dwRtn != ERROR_SERVICE_EXISTS )  
		{  
			//由于其他原因創建服務失敗
			printf( "CrateService() Faild %d ! \n", dwRtn );  
			bRet = FALSE;
			goto BeforeLeave;
		}  
		else  
		{
			//服務創建失敗,是由于服務已經創立過
			printf( "CrateService() Faild Service is ERROR_IO_PENDING or ERROR_SERVICE_EXISTS! \n" );  
		}

		// 驅動程序已經加載,只需要打開  
		hServiceDDK = OpenService( hServiceMgr, lpszDriverName, SERVICE_ALL_ACCESS );  
		if( hServiceDDK == NULL )  
		{
			//如果打開服務也失敗,則意味錯誤
			dwRtn = GetLastError();  
			printf( "OpenService() Faild %d ! \n", dwRtn );  
			bRet = FALSE;
			goto BeforeLeave;
		}  
		else 
		{
			printf( "OpenService() ok ! \n" );
		}
	}  
	else  
	{
		printf( "CrateService() ok ! \n" );
	}

	//開啟此項服務
	bRet= StartService( hServiceDDK, NULL, NULL );  
	if( !bRet )  
	{  
		DWORD dwRtn = GetLastError();  
		if( dwRtn != ERROR_IO_PENDING && dwRtn != ERROR_SERVICE_ALREADY_RUNNING )  
		{  
			printf( "StartService() Faild %d ! \n", dwRtn );  
			bRet = FALSE;
			goto BeforeLeave;
		}  
		else  
		{  
			if( dwRtn == ERROR_IO_PENDING )  
			{  
				//設備被掛住
				printf( "StartService() Faild ERROR_IO_PENDING ! \n");
				bRet = FALSE;
				goto BeforeLeave;
			}  
			else  
			{  
				//服務已經開啟
				printf( "StartService() Faild ERROR_SERVICE_ALREADY_RUNNING ! \n");
				bRet = TRUE;
				goto BeforeLeave;
			}  
		}  
	}
	bRet = TRUE;
//離開前關閉句柄
BeforeLeave:
	if(hServiceDDK)
	{
		CloseServiceHandle(hServiceDDK);
	}
	if(hServiceMgr)
	{
		CloseServiceHandle(hServiceMgr);
	}
	return bRet;
}

//卸載驅動程序  
BOOL UnloadNTDriver( char * szSvrName )  
{
	BOOL bRet = FALSE;
	SC_HANDLE hServiceMgr=NULL;//SCM管理器的句柄
	SC_HANDLE hServiceDDK=NULL;//NT驅動程序的服務句柄
	SERVICE_STATUS SvrSta;
	//打開SCM管理器
	hServiceMgr = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );  
	if( hServiceMgr == NULL )  
	{
		//帶開SCM管理器失敗
		printf( "OpenSCManager() Faild %d ! \n", GetLastError() );  
		bRet = FALSE;
		goto BeforeLeave;
	}  
	else  
	{
		//帶開SCM管理器失敗成功
		printf( "OpenSCManager() ok ! \n" );  
	}
	//打開驅動所對應的服務
	hServiceDDK = OpenService( hServiceMgr, szSvrName, SERVICE_ALL_ACCESS );  

	if( hServiceDDK == NULL )  
	{
		//打開驅動所對應的服務失敗
		printf( "OpenService() Faild %d ! \n", GetLastError() );  
		bRet = FALSE;
		goto BeforeLeave;
	}  
	else  
	{  
		printf( "OpenService() ok ! \n" );  
	}  
	//停止驅動程序,如果停止失敗,只有重新啟動才能,再動態加載。  
	if( !ControlService( hServiceDDK, SERVICE_CONTROL_STOP , &SvrSta ) )  
	{  
		printf( "ControlService() Faild %d !\n", GetLastError() );  
	}  
	else  
	{
		//打開驅動所對應的失敗
		printf( "ControlService() ok !\n" );  
	}  
	//動態卸載驅動程序。  
	if( !DeleteService( hServiceDDK ) )  
	{
		//卸載失敗
		printf( "DeleteSrevice() Faild %d !\n", GetLastError() );  
	}  
	else  
	{  
		//卸載成功
		printf( "DelServer:eleteSrevice() ok !\n" );  
	}  
	bRet = TRUE;
BeforeLeave:
//離開前關閉打開的句柄
	if(hServiceDDK)
	{
		CloseServiceHandle(hServiceDDK);
	}
	if(hServiceMgr)
	{
		CloseServiceHandle(hServiceMgr);
	}
	return bRet;	
} 

void TestDriver()
{
	//測試驅動程序  
	HANDLE hDevice = CreateFile("\\\\.\\HelloDDK",  
		GENERIC_WRITE | GENERIC_READ,  
		0,  
		NULL,  
		OPEN_EXISTING,  
		0,  
		NULL);  
	if( hDevice != INVALID_HANDLE_VALUE )  
	{
		printf( "Create Device ok ! \n" );  
	}
	else  
	{
		printf( "Create Device faild %d ! \n", GetLastError() );  
	}
	CloseHandle( hDevice );
} 

int main(int argc, char* argv[])  
{
	//加載驅動
	BOOL bRet = LoadNTDriver(DRIVER_NAME,DRIVER_PATH);
	if (!bRet)
	{
		printf("LoadNTDriver error\n");
		return 0;
	}
	//加載成功

	printf( "press any to create device!\n" );  
	getch();  

	TestDriver();

	//這時候你可以通過注冊表,或其他查看符號連接的軟件驗證。  
	printf( "press any to unload the driver!\n" );  
	getch();  

	//卸載驅動
	UnloadNTDriver(DRIVER_NAME);
	if (!bRet)
	{
		printf("UnloadNTDriver error\n");
		return 0;
	}

	return 0;  
}  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区在线| 久久电影国产免费久久电影| 爽好久久久欧美精品| 高清在线不卡av| 欧美一级免费大片| 亚洲男人电影天堂| 国产成人综合网| 日韩一区二区在线观看视频| 一区二区在线看| 成人精品视频网站| 精品国产乱码久久久久久图片 | 爽爽淫人综合网网站| av在线不卡免费看| 久久久久久影视| 久久9热精品视频| 9191成人精品久久| 亚洲成人在线网站| 欧美午夜电影在线播放| 亚洲天堂网中文字| 97久久人人超碰| 国产精品成人一区二区艾草 | 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲成av人片在线观看无码| 日本韩国欧美国产| 国产精品乱码一区二区三区软件 | 日本成人在线电影网| 欧美视频精品在线观看| 一区二区三区在线视频播放| 91在线播放网址| 亚洲色图视频免费播放| 成人av在线播放网址| 中文字幕不卡在线观看| 成人爽a毛片一区二区免费| 亚洲国产精品成人综合色在线婷婷| 日韩av网站在线观看| 日韩一区二区三区免费看 | 一本久久a久久免费精品不卡| 国产精品久久久久一区 | 亚洲成人黄色小说| 一本色道亚洲精品aⅴ| 亚洲人成网站在线| 欧美三级日韩三级| 调教+趴+乳夹+国产+精品| 日韩一二三四区| 国产一区二区视频在线| 国产欧美一区二区精品仙草咪| 成人h精品动漫一区二区三区| 国产精品不卡一区| 欧美视频一区二区在线观看| 午夜日韩在线观看| 精品福利一二区| 99精品视频在线观看| 午夜精品福利视频网站| 精品国产凹凸成av人网站| 福利电影一区二区| 亚洲午夜激情网站| 精品久久久久久久一区二区蜜臀| 国产激情偷乱视频一区二区三区| 亚洲色图视频网| 91精品久久久久久久99蜜桃| 国产福利一区在线| 亚洲一区二区三区四区不卡| 欧美一区二区三区在线看| 国产成都精品91一区二区三| 一级特黄大欧美久久久| 欧美岛国在线观看| 色噜噜狠狠色综合中国| 久久精品国产99国产| 亚洲精品久久嫩草网站秘色| 91精品国产91久久久久久最新毛片 | 在线视频国产一区| 韩国欧美一区二区| 亚洲国产视频在线| 国产蜜臀av在线一区二区三区| 91国产福利在线| 国产高清精品在线| 日日噜噜夜夜狠狠视频欧美人| 国产精品人成在线观看免费| 6080午夜不卡| 色丁香久综合在线久综合在线观看| 美国毛片一区二区| 亚洲午夜免费电影| 日韩一区欧美小说| 久久久www成人免费毛片麻豆 | 久久综合久久99| 欧美日韩在线播放一区| 成人永久aaa| 国产尤物一区二区| 蜜臀国产一区二区三区在线播放| 一区二区三区精品在线观看| 久久久亚洲综合| 精品国产制服丝袜高跟| 欧美男男青年gay1069videost| 成人三级在线视频| 国产乱人伦精品一区二区在线观看| 亚洲最大的成人av| |精品福利一区二区三区| 欧美经典一区二区| 久久综合色一综合色88| 日韩视频免费观看高清完整版在线观看| 91在线视频18| 91尤物视频在线观看| 国产不卡一区视频| 粉嫩av一区二区三区粉嫩| 韩国在线一区二区| 免费成人美女在线观看.| 天堂精品中文字幕在线| 天堂一区二区在线| 日本亚洲免费观看| 美女精品自拍一二三四| 久久精品99国产精品日本| 日本视频一区二区| 蜜桃av一区二区在线观看| 69久久夜色精品国产69蝌蚪网| 欧美国产1区2区| 精品国产三级电影在线观看| 91精品欧美一区二区三区综合在| 欧美日韩国产综合久久 | av电影在线观看一区| 国产精品一区二区你懂的| 韩国欧美国产1区| 国产精品亚洲а∨天堂免在线| 国产精品一区2区| 成人免费毛片嘿嘿连载视频| 成人精品一区二区三区四区| 成人av电影在线| 在线这里只有精品| 777奇米成人网| 久久综合国产精品| 国产精品黄色在线观看| 亚洲乱码国产乱码精品精98午夜| 亚洲一区二区在线视频| 日韩黄色免费电影| 国产又粗又猛又爽又黄91精品| 成人福利视频网站| 欧美日韩免费一区二区三区| 精品日本一线二线三线不卡| 欧美国产日韩一二三区| 亚洲综合色婷婷| 国内精品国产三级国产a久久| 成人天堂资源www在线| 欧美视频在线一区二区三区| 日韩一二三区视频| 亚洲欧洲av一区二区三区久久| 亚洲午夜成aⅴ人片| 久久国内精品视频| 99国产精品久久久久久久久久| 欧美精三区欧美精三区| 国产亚洲一区二区三区四区 | 国产精品资源在线观看| 91猫先生在线| 精品少妇一区二区三区| 国产精品国产三级国产aⅴ入口| 性欧美疯狂xxxxbbbb| 国产99久久久国产精品免费看| 在线观看国产日韩| 久久久久国产精品麻豆ai换脸 | 国产呦精品一区二区三区网站| av电影天堂一区二区在线| 5月丁香婷婷综合| 国产精品超碰97尤物18| 狂野欧美性猛交blacked| 91视频观看免费| 久久九九影视网| 偷窥少妇高潮呻吟av久久免费| www.日韩在线| 久久综合久久久久88| 五月天视频一区| 91蜜桃在线观看| 中文字幕高清不卡| 久久er精品视频| 欧美放荡的少妇| 亚洲小说欧美激情另类| 高清在线观看日韩| 久久综合九色综合欧美98 | 亚洲一区二区三区四区中文字幕| 国产福利精品导航| 精品久久一区二区| 性做久久久久久免费观看| 91黄视频在线观看| 综合在线观看色| 成人免费视频免费观看| 久久久99精品久久| 精品一区精品二区高清| 日韩一二三四区| 日本在线不卡一区| 7777精品伊人久久久大香线蕉的 | 香港成人在线视频| 日本精品一区二区三区高清 | 中文字幕一区二区三区在线观看 | 精品国产一区二区三区久久久蜜月| 亚洲3atv精品一区二区三区| 91福利国产成人精品照片| ...中文天堂在线一区| 99久久国产综合精品色伊| 亚洲国产精品传媒在线观看| 高清日韩电视剧大全免费| 欧美国产日韩亚洲一区| 成人黄色在线视频| 中文字幕在线一区免费|