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

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

?? driver.cpp

?? 《Windows驅動開發技術詳解》隨書源碼
?? CPP
字號:
/************************************************************************
* 文件名稱:Driver.cpp                                                 
* 作    者:張帆
* 完成日期:2007-11-1
*************************************************************************/

#include "Driver.h"

/************************************************************************
* 函數名稱:DriverEntry
* 功能描述:初始化驅動程序,定位和申請硬件資源,創建內核對象
* 參數列表:
      pDriverObject:從I/O管理器中傳進來的驅動對象
      pRegistryPath:驅動程序在注冊表的中的路徑
* 返回 值:返回初始化驅動狀態
*************************************************************************/
#pragma INITCODE
extern "C" NTSTATUS DriverEntry (
			IN PDRIVER_OBJECT pDriverObject,
			IN PUNICODE_STRING pRegistryPath	) 
{
	NTSTATUS status;
	KdPrint(("DriverA:Enter A DriverEntry\n"));

	//注冊其他驅動調用函數入口
	pDriverObject->DriverUnload = HelloDDKUnload;
	pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKCreate;
	pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKClose;
	pDriverObject->MajorFunction[IRP_MJ_WRITE] = HelloDDKDispatchRoutine;
	pDriverObject->MajorFunction[IRP_MJ_READ] = HelloDDKRead;
	
	//創建驅動設備對象
	status = CreateDevice(pDriverObject);

	KdPrint(("DriverA:Leave A DriverEntry\n"));
	return status;
}


/************************************************************************
* 函數名稱:CreateDevice
* 功能描述:初始化設備對象
* 參數列表:
      pDriverObject:從I/O管理器中傳進來的驅動對象
* 返回 值:返回初始化狀態
*************************************************************************/
#pragma INITCODE
NTSTATUS CreateDevice (
		IN PDRIVER_OBJECT	pDriverObject) 
{
	NTSTATUS status;
	PDEVICE_OBJECT pDevObj;
	PDEVICE_EXTENSION pDevExt;
	
	//創建設備名稱
	UNICODE_STRING devName;
	RtlInitUnicodeString(&devName,L"\\Device\\MyDDKDeviceA");
	
	//創建設備
	status = IoCreateDevice( pDriverObject,
						sizeof(DEVICE_EXTENSION),
						&(UNICODE_STRING)devName,
						FILE_DEVICE_UNKNOWN,
						0, TRUE,
						&pDevObj );
	if (!NT_SUCCESS(status))
		return status;

	pDevObj->Flags |= DO_DIRECT_IO;
	pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;
	pDevExt->pDevice = pDevObj;
	pDevExt->ustrDeviceName = devName;

	//創建符號鏈接
	UNICODE_STRING symLinkName;
	RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDKA");
	pDevExt->ustrSymLinkName = symLinkName;
	status = IoCreateSymbolicLink( &symLinkName,&devName );
	if (!NT_SUCCESS(status)) 
	{
		IoDeleteDevice( pDevObj );
		return status;
	}
	return STATUS_SUCCESS;
}

/************************************************************************
* 函數名稱:HelloDDKUnload
* 功能描述:負責驅動程序的卸載操作
* 參數列表:
      pDriverObject:驅動對象
* 返回 值:返回狀態
*************************************************************************/
#pragma PAGEDCODE
VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject) 
{
	PDEVICE_OBJECT	pNextObj;
	KdPrint(("DriverA:Enter A DriverUnload\n"));
	pNextObj = pDriverObject->DeviceObject;
	while (pNextObj != NULL) 
	{
		PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)
			pNextObj->DeviceExtension;

		//刪除符號鏈接
		UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
		IoDeleteSymbolicLink(&pLinkName);
		pNextObj = pNextObj->NextDevice;
		IoDeleteDevice( pDevExt->pDevice );
	}
	KdPrint(("DriverA:Leave A DriverUnload\n"));
}


/************************************************************************
* 函數名稱:HelloDDKRead
* 功能描述:對讀IRP進行處理
* 參數列表:
      pDevObj:功能設備對象
      pIrp:從IO請求包
* 返回 值:返回狀態
*************************************************************************/
#pragma PAGEDCODE
NTSTATUS HelloDDKRead(IN PDEVICE_OBJECT pDevObj,
								 IN PIRP pIrp) 
{
	KdPrint(("DriverA:Enter A HelloDDKRead\n"));
	NTSTATUS status = STATUS_SUCCESS;

	PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(pIrp);

	ULONG totalLength;
	PVOID virtualAddress;
	if (!pIrp->MdlAddress)
	{
		status = STATUS_UNSUCCESSFUL;
		totalLength = 0;
		goto HelloDDKRead_EXIT;
	}
	
	virtualAddress = MmGetMdlVirtualAddress(pIrp->MdlAddress);
	totalLength = MmGetMdlByteCount(pIrp->MdlAddress);

	RtlFillMemory(virtualAddress,totalLength,0xFF);

	KdPrint(("DriverA:virtualAddress:%x\n",virtualAddress));
	KdPrint(("DriverA:totalLength:%d\n",totalLength));

HelloDDKRead_EXIT:
	// 完成IRP
	pIrp->IoStatus.Status = status;
	pIrp->IoStatus.Information = totalLength;	//bytes xfered
	IoCompleteRequest( pIrp, IO_NO_INCREMENT );
	KdPrint(("DriverA:Leave A HelloDDKRead\n"));
	return status;
}

/************************************************************************
* 函數名稱:HelloDDKDispatchRoutine
* 功能描述:對讀IRP進行處理
* 參數列表:
      pDevObj:功能設備對象
      pIrp:從IO請求包
* 返回 值:返回狀態
*************************************************************************/
#pragma PAGEDCODE
NTSTATUS HelloDDKDispatchRoutine(IN PDEVICE_OBJECT pDevObj,
								 IN PIRP pIrp) 
{
	KdPrint(("DriverA:Enter A HelloDDKDispatchRoutine\n"));
	NTSTATUS status = STATUS_SUCCESS;
	// 完成IRP
	pIrp->IoStatus.Status = status;
	pIrp->IoStatus.Information = 0;	// bytes xfered
	IoCompleteRequest( pIrp, IO_NO_INCREMENT );
	KdPrint(("DriverA:Leave A HelloDDKDispatchRoutine\n"));
	return status;
}

#pragma PAGEDCODE
NTSTATUS HelloDDKCreate(IN PDEVICE_OBJECT pDevObj,
								 IN PIRP pIrp) 
{
	KdPrint(("DriverA:Enter A HelloDDKCreate\n"));
	NTSTATUS status = STATUS_SUCCESS;
	// 完成IRP
	pIrp->IoStatus.Status = status;
	pIrp->IoStatus.Information = 0;	// bytes xfered
	IoCompleteRequest( pIrp, IO_NO_INCREMENT );
	KdPrint(("DriverA:Leave A HelloDDKCreate\n"));
	return status;
}

#pragma PAGEDCODE
NTSTATUS HelloDDKClose(IN PDEVICE_OBJECT pDevObj,
								 IN PIRP pIrp) 
{
	KdPrint(("DriverA:Enter A HelloDDKClose\n"));
	NTSTATUS status = STATUS_SUCCESS;
	// 完成IRP
	pIrp->IoStatus.Status = status;
	pIrp->IoStatus.Information = 0;	// bytes xfered
	IoCompleteRequest( pIrp, IO_NO_INCREMENT );
	KdPrint(("DriverA:Leave A HelloDDKClose\n"));
	return status;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色爱av资源综合区| 精品国产一区二区三区久久久蜜月| 麻豆视频观看网址久久| 一区二区三区久久久| 亚洲女爱视频在线| 亚洲精品乱码久久久久久久久| 中文字幕高清不卡| 国产精品视频线看| 日韩美女精品在线| 亚洲与欧洲av电影| 天天操天天色综合| 日韩影视精彩在线| 男女男精品视频网| 国产精品亚洲第一区在线暖暖韩国| 国产一区激情在线| 成人免费高清在线观看| 91在线观看地址| 在线视频欧美区| 91麻豆精品国产91久久久久久| 日韩一区二区免费在线电影| 日韩午夜在线影院| 久久久亚洲国产美女国产盗摄| 久久久久久久久久久99999| 久久久久久久综合狠狠综合| 亚洲h动漫在线| 久久成人麻豆午夜电影| 国产成a人亚洲精品| 99久久精品一区二区| 欧美人成免费网站| 久久综合给合久久狠狠狠97色69| 久久伊人中文字幕| 亚洲人快播电影网| 麻豆精品一区二区综合av| 高清久久久久久| 欧美日本韩国一区二区三区视频| 精品国产乱码久久久久久1区2区 | 亚洲精品伦理在线| 日韩电影一区二区三区四区| 成人一区二区三区视频在线观看 | 99久久精品免费| 天天爽夜夜爽夜夜爽精品视频| 国产一区999| 国产人妖乱国产精品人妖| 国产成a人无v码亚洲福利| 色呦呦一区二区三区| 一区二区三区久久久| 亚洲尤物在线视频观看| 成人国产亚洲欧美成人综合网| 日韩一区二区三区视频在线观看 | 久久精品亚洲精品国产欧美kt∨| 性做久久久久久久免费看| 欧美综合一区二区| 亚洲美女在线一区| 欧美日韩性生活| 日本亚洲电影天堂| 日韩欧美在线123| 91小宝寻花一区二区三区| www国产亚洲精品久久麻豆| 国产精品白丝av| 亚洲高清免费在线| 日韩一区二区三免费高清| 高清在线不卡av| 六月婷婷色综合| 国产精品久久国产精麻豆99网站| 色综合视频在线观看| 首页亚洲欧美制服丝腿| 精品福利一区二区三区| 成人免费精品视频| 婷婷激情综合网| 日本不卡视频在线观看| 日韩区在线观看| 欧美一区二区三区婷婷月色| 婷婷久久综合九色综合绿巨人 | 日韩免费观看高清完整版| 亚洲乱码国产乱码精品精的特点| 日韩无一区二区| 欧美一区二区在线观看| 亚洲免费成人av| 色婷婷久久久亚洲一区二区三区| 色婷婷综合五月| 1024成人网| 97久久超碰国产精品| 一区二区在线观看免费| 91麻豆精品国产91久久久使用方法| 一区二区三国产精华液| 91麻豆视频网站| 亚洲国产另类av| 91精品国产黑色紧身裤美女| 美女性感视频久久| 在线观看视频欧美| 亚洲成年人影院| 日韩免费高清av| 懂色av中文一区二区三区| 中文字幕在线观看一区二区| 欧洲精品视频在线观看| 美女国产一区二区| 国产日韩高清在线| 99国产精品视频免费观看| 亚洲成人av在线电影| 亚洲精品一区二区精华| voyeur盗摄精品| 亚洲成人黄色小说| 国产亚洲一区二区三区四区| 91免费在线看| 九一久久久久久| 亚洲人成伊人成综合网小说| 日韩一区二区精品葵司在线| 成人精品鲁一区一区二区| 亚洲成人一区二区在线观看| 久久综合色之久久综合| 91官网在线观看| 国产一区二区三区久久悠悠色av| 亚洲欧美日韩久久| 久久综合网色—综合色88| 97精品国产露脸对白| 黄页网站大全一区二区| 亚洲男人的天堂一区二区| 精品国产1区二区| 欧美手机在线视频| 大陆成人av片| 久久国产精品色婷婷| 亚洲综合免费观看高清完整版在线 | 国产精品高潮呻吟久久| 欧美区视频在线观看| av在线不卡免费看| 国内精品免费**视频| 亚洲成人动漫av| 亚洲欧洲av色图| 久久久久久**毛片大全| 91精品国产免费久久综合| 一本久久a久久免费精品不卡| 国产成人亚洲综合a∨猫咪| 日产精品久久久久久久性色| 亚洲综合成人在线视频| 亚洲国产精品黑人久久久| 日韩一级在线观看| 欧美精品日韩一本| 在线视频亚洲一区| 9久草视频在线视频精品| 国产精品 日产精品 欧美精品| 日产欧产美韩系列久久99| 无码av免费一区二区三区试看| 最新日韩在线视频| 欧美国产精品一区| 国产精品免费视频一区| 2022国产精品视频| 日韩免费观看高清完整版| 91精品国产乱码| 欧美zozozo| 亚洲精品一区二区三区福利| 亚洲精品在线网站| 久久亚洲精品小早川怜子| 久久久久久久网| 国产精品污www在线观看| 久久久久国产精品人| 久久久不卡影院| 欧美国产禁国产网站cc| 中文字幕欧美激情| 亚洲视频在线观看三级| 亚洲少妇中出一区| 亚洲国产精品欧美一二99| 亚洲r级在线视频| 波多野结衣亚洲一区| 99精品欧美一区| 在线亚洲免费视频| 欧美蜜桃一区二区三区| 欧美久久婷婷综合色| 欧美一级搡bbbb搡bbbb| 精品成人免费观看| 欧美—级在线免费片| 一区二区三区产品免费精品久久75| 亚洲一区二区视频在线观看| 亚洲午夜av在线| 极品少妇一区二区三区精品视频 | 成人h动漫精品一区二区 | 亚洲一区二区精品久久av| 亚洲成人在线观看视频| 青青国产91久久久久久| 国产激情视频一区二区三区欧美| 91丨porny丨蝌蚪视频| 欧美老年两性高潮| 久久精品一区二区| 亚洲综合色噜噜狠狠| 国内久久精品视频| 91免费精品国自产拍在线不卡| 欧美日韩国产高清一区| 久久久另类综合| 亚洲一区二区在线免费观看视频 | 一本久久综合亚洲鲁鲁五月天| 7777精品伊人久久久大香线蕉完整版 | 国产欧美日韩久久| 午夜精品福利在线| jvid福利写真一区二区三区| 91精品国产福利在线观看 | 精品粉嫩aⅴ一区二区三区四区 | 蜜臀av一区二区| 色狠狠色狠狠综合| 久久久蜜桃精品| 日日夜夜免费精品| 不卡一区二区三区四区|