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

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

?? driver.h

?? 一個win32程序調(diào)用CharConvert.SYS驅(qū)動文件,轉(zhuǎn)換阿拉伯字符和中文字符的例子
?? H
字號:
///////////////////////////////////////////////////
// Driver.h文件

#ifndef __DRIVER_H__
#define __DRIVER_H__

#include <Winsvc.h>	// 為了使用SCM函數(shù)

class CDriver
{

public:
// 構造函數(shù)和析構函數(shù)
	// 構造函數(shù),pszDriverPath為驅(qū)動所在目錄,pszLinkName為符號連接名字
	// 在類的構造函數(shù)中,將試圖創(chuàng)建或打開服務,
	CDriver(LPCTSTR pszDriverPath, LPCTSTR pszLinkName);
	// 析構函數(shù)。在這里,將停止服務,
	virtual ~CDriver();

// 屬性
	// 此驅(qū)動是否可用
	virtual BOOL IsValid() { return (m_hSCM != NULL && m_hService != NULL); }

// 操作
	// 開啟服務。也就是說驅(qū)動的DriverEntry函數(shù)將被調(diào)用
	virtual BOOL StartDriver();
	// 結(jié)束服務。即驅(qū)動程序的DriverUnload例程將被調(diào)用
	virtual BOOL StopDriver();
	
	// 打開設備,即取得到此驅(qū)動的一個句柄
	virtual BOOL OpenDevice();

	// 向設備發(fā)送控制代碼
	virtual DWORD IoControl(DWORD nCode, PVOID pInBuffer, 
			DWORD nInCount, PVOID pOutBuffer, DWORD nOutCount);
// 實現(xiàn)
protected:
	char m_szLinkName[56];	// 符號連接名稱

	BOOL m_bStarted;	// 指定服務是否啟動
	BOOL m_bCreateService;	// 指定是否創(chuàng)建了服務

	HANDLE m_hSCM;		// SCM數(shù)據(jù)庫句柄
	HANDLE m_hService;	// 服務句柄
	HANDLE m_hDriver;	// 設備句柄
};


CDriver::CDriver(LPCTSTR pszDriverPath, LPCTSTR pszLinkName)
{
	strncpy(m_szLinkName, pszLinkName, 55);
	m_bStarted = FALSE;
	m_bCreateService = FALSE;
	m_hSCM = m_hService = NULL;
	m_hDriver = INVALID_HANDLE_VALUE;

	// 打開SCM管理器
	m_hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
	if(m_hSCM == NULL)
	{
		MessageBox(0, "打開服務控制管理器失敗\n", 
				"可能是因為您不擁有Administrator權限\n", 0);
		return;
	}

	// 創(chuàng)建或打開服務
	m_hService = ::CreateService(m_hSCM, m_szLinkName, m_szLinkName, SERVICE_ALL_ACCESS, 
				SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, 
				pszDriverPath, NULL, 0, NULL, NULL, NULL);
	if(m_hService == NULL)
	{
		// 創(chuàng)建服務失敗,可能是因為服務已經(jīng)存在,所以還要試圖打開它
		int nError = ::GetLastError();
		if(nError == ERROR_SERVICE_EXISTS || nError == ERROR_SERVICE_MARKED_FOR_DELETE)
		{
			m_hService = ::OpenService(m_hSCM, m_szLinkName, SERVICE_ALL_ACCESS);
		}
	}
	else
	{
		m_bCreateService = TRUE;
	}
}

CDriver::~CDriver()
{
	// 關閉設備句柄
	if(m_hDriver != INVALID_HANDLE_VALUE)
		::CloseHandle(m_hDriver);
	// 如果創(chuàng)建了服務,就將之刪除
	if(m_bCreateService)
	{
		StopDriver();
		::DeleteService(m_hService);	
	}
	// 關閉句柄
	if(m_hService != NULL)
		::CloseServiceHandle(m_hService);
	if(m_hSCM != NULL)
		::CloseServiceHandle(m_hSCM);
}

BOOL CDriver::StartDriver()
{
	if(m_bStarted)
		return TRUE;
	if(m_hService == NULL)
		return FALSE;
	// 啟動服務
	if(!::StartService(m_hService, 0, NULL))
	{
		int nError = ::GetLastError();
		if(nError == ERROR_SERVICE_ALREADY_RUNNING)
			m_bStarted = TRUE;
		else
			::DeleteService(m_hService);
	}
	else
	{
		// 啟動成功后,等待服務進入運行狀態(tài)
		int nTry = 0;
		SERVICE_STATUS ss;
		::QueryServiceStatus(m_hService, &ss);
		while(ss.dwCurrentState == SERVICE_START_PENDING && nTry++ < 80)
		{
			::Sleep(50);
			::QueryServiceStatus(m_hService, &ss);
		}
		if(ss.dwCurrentState == SERVICE_RUNNING)
			m_bStarted = TRUE;
	}
	return m_bStarted;
}

BOOL CDriver::StopDriver()
{
	if(!m_bStarted)
		return TRUE;
	if(m_hService == NULL)
		return FALSE;
	// 停止服務
	SERVICE_STATUS ss;
	if(!::ControlService(m_hService, SERVICE_CONTROL_STOP, &ss))
	{
		if(::GetLastError() == ERROR_SERVICE_NOT_ACTIVE)
			m_bStarted = FALSE;
	}
	else
	{
		// 等待服務完全停止運行
		int nTry = 0;
		while(ss.dwCurrentState == SERVICE_STOP_PENDING && nTry++ < 80)
		{
			::Sleep(50);
			::QueryServiceStatus(m_hService, &ss);
		}
		if(ss.dwCurrentState == SERVICE_STOPPED)
			m_bStarted = FALSE;
	}
	return !m_bStarted;
}

BOOL CDriver::OpenDevice()
{
	if(m_hDriver != INVALID_HANDLE_VALUE)
		return TRUE;

	// "\\.\"是Win32中定義本地計算機的方法,
	// m_szLinkName是設備對象的符號連接名稱,后面章節(jié)會詳細討論
	char sz[256] = "";
	wsprintf(sz, "\\\\.\\%s", m_szLinkName);
	// 打開驅(qū)動程序所控制設備
	m_hDriver = ::CreateFile(sz,
		GENERIC_READ | GENERIC_WRITE,
		0,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL,
		NULL);

	return (m_hDriver != INVALID_HANDLE_VALUE);
}

DWORD CDriver::IoControl(DWORD nCode, PVOID pInBuffer, 
		DWORD nInCount, PVOID pOutBuffer, DWORD nOutCount)
{
	if(m_hDriver == INVALID_HANDLE_VALUE)
		return -1;
	// 向驅(qū)動程序發(fā)送控制代碼
	DWORD nBytesReturn;
	BOOL bRet = ::DeviceIoControl(m_hDriver, nCode, 
		pInBuffer, nInCount, pOutBuffer, nOutCount, &nBytesReturn, NULL);
	if(bRet)
		return nBytesReturn;
	else
		return -1;
}

#endif // __DRIVER_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费电影一区| 99久久精品国产网站| 91国产精品成人| 国产精品福利一区| 国产传媒久久文化传媒| 欧美精品第1页| 亚洲同性同志一二三专区| 极品销魂美女一区二区三区| 欧美老肥妇做.爰bbww| 亚洲欧美日韩一区| 91视频在线看| 亚洲精品免费视频| 91福利视频网站| 亚洲va国产va欧美va观看| 日本精品视频一区二区三区| 中文字幕av不卡| 成人综合在线视频| 国产精品入口麻豆原神| 成人在线视频一区| 国产精品久久一卡二卡| 91视频com| 午夜一区二区三区视频| 欧美专区日韩专区| 日韩精品乱码av一区二区| 欧美丰满嫩嫩电影| 精品一区二区免费在线观看| 久久色在线观看| 成人免费av资源| 亚洲国产中文字幕| 欧美一区二区三区日韩| 国产麻豆欧美日韩一区| 国产欧美va欧美不卡在线 | 色婷婷精品久久二区二区蜜臂av| 国产精品色哟哟| 欧美日韩国产一区| 九一久久久久久| 国产精品免费av| 欧美裸体一区二区三区| 国模娜娜一区二区三区| 国产精品久久久久精k8| 欧美日韩电影在线播放| 国产精品原创巨作av| 一区二区三区在线看| 日韩精品一区在线观看| 99re这里只有精品首页| 精品综合免费视频观看| 中文字幕在线免费不卡| 欧美一区二区久久久| 91污片在线观看| 国产精品一区二区久久精品爱涩| 亚洲精品高清视频在线观看| 日韩欧美你懂的| 在线观看视频一区二区| 成人免费视频caoporn| av一区二区不卡| 另类综合日韩欧美亚洲| 亚洲制服丝袜一区| 中文字幕视频一区| 欧美精品一区二区不卡 | 久久久久国产精品麻豆ai换脸 | 欧美美女一区二区| 色诱亚洲精品久久久久久| 亚洲三级在线免费观看| 一区二区欧美国产| 日韩一区二区三区视频| 狠狠v欧美v日韩v亚洲ⅴ| 美腿丝袜一区二区三区| 午夜精品123| 亚洲成人综合网站| 亚洲国产日韩综合久久精品| 亚洲精品日日夜夜| 一区二区视频在线看| 国产精品超碰97尤物18| 国产精品传媒入口麻豆| 国产精品热久久久久夜色精品三区| 久久亚洲一级片| 久久久一区二区三区| 久久精品一区二区三区不卡| 精品福利av导航| 26uuu国产电影一区二区| 五月天一区二区三区| 亚洲午夜免费电影| 日本不卡视频在线观看| 蜜乳av一区二区| 国产毛片精品一区| 91色乱码一区二区三区| 欧美午夜片在线观看| 91精品国产综合久久婷婷香蕉| 日韩三级视频在线观看| 久久久久亚洲综合| 亚洲欧美日韩中文播放| 亚洲一二三四在线观看| 麻豆91在线观看| 99免费精品在线观看| 日本韩国欧美三级| 日韩一级视频免费观看在线| 久久久天堂av| 亚洲福利一二三区| 国产精品资源在线观看| 在线免费观看不卡av| 日韩欧美激情一区| 一区二区三区在线观看动漫| 美国十次了思思久久精品导航| 国产成人免费视频网站| 欧美精品三级日韩久久| 国产精品嫩草99a| 免费高清在线视频一区·| 成人免费电影视频| 精品理论电影在线| 亚洲成av人片| aa级大片欧美| 久久综合给合久久狠狠狠97色69| 夜夜精品浪潮av一区二区三区| 久久精品国产99| 欧美三区在线观看| 亚洲色图在线视频| 国产成人av一区二区三区在线| 7777精品伊人久久久大香线蕉超级流畅 | 国产91精品露脸国语对白| 欧美日韩的一区二区| 亚洲女厕所小便bbb| 国产成人亚洲综合a∨猫咪| 日韩一区二区三免费高清| 亚洲午夜在线观看视频在线| 不卡视频一二三| 中文字幕乱码一区二区免费| 美腿丝袜一区二区三区| 91精品国产91久久久久久一区二区 | 精品无人区卡一卡二卡三乱码免费卡| 91福利国产成人精品照片| 一区在线观看视频| bt7086福利一区国产| 久久久av毛片精品| 国产不卡在线一区| 国产精品久久久久久久午夜片| 国产露脸91国语对白| 国产欧美日韩在线| 丁香婷婷综合网| 最新久久zyz资源站| 91小视频在线| 亚洲一区二区三区三| 7777精品伊人久久久大香线蕉完整版| 亚洲18色成人| www国产精品av| 成人av在线播放网站| 尤物在线观看一区| 欧美一区二区在线看| 国内久久精品视频| 一区二区三区四区在线| 欧美丰满少妇xxxxx高潮对白| 国内久久婷婷综合| 中文字幕欧美一| 91精品欧美一区二区三区综合在| 麻豆国产91在线播放| 亚洲天堂a在线| 日韩欧美一二三| 色综合久久天天综合网| 视频一区国产视频| 国产精品视频免费看| 制服.丝袜.亚洲.另类.中文| 狠狠色丁香婷婷综合| 一区二区免费在线| 久久久蜜臀国产一区二区| 91麻豆精品秘密| 国产一区二区三区免费| 一区二区在线观看av| 国产色91在线| 欧美日韩国产另类一区| 丰满岳乱妇一区二区三区 | 99久久99精品久久久久久 | 亚洲sss视频在线视频| 国产精品美女久久久久久2018| 欧美精品丝袜中出| 色婷婷综合激情| 99精品国产热久久91蜜凸| 国产精品综合网| 蜜臀久久99精品久久久久宅男 | 久久这里只有精品6| 欧美日韩国产不卡| 91高清在线观看| 91麻豆免费看| 日本乱人伦aⅴ精品| 成人伦理片在线| 成人av网站在线观看免费| 久久9热精品视频| 寂寞少妇一区二区三区| 久久国产视频网| 久久精品久久99精品久久| 日本麻豆一区二区三区视频| 亚洲午夜在线视频| 亚洲成va人在线观看| 亚洲免费观看高清完整版在线观看| 中文字幕一区二区三区色视频| 久久综合九色综合97婷婷女人| 亚洲精品一区二区三区精华液| 欧美一个色资源| 亚洲精品在线网站| 欧美激情一区二区三区全黄| 国产精品美女一区二区在线观看| 中文字幕欧美日韩一区|