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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? driver.cpp

?? 《Windows驅(qū)動(dòng)開發(fā)技術(shù)詳解》隨書源碼
?? CPP
字號(hào):
/************************************************************************
* 文件名稱:Driver.cpp                                                 
* 作    者:張帆
* 完成日期:2007-11-1
*************************************************************************/

#include "Driver.h"

typedef struct _MYDATASTRUCT 
{
	ULONG number;
	LIST_ENTRY ListEntry;
} MYDATASTRUCT, *PMYDATASTRUCT;

#pragma INITCODE
VOID LinkListTest() 
{
	LIST_ENTRY linkListHead;
	//初始化鏈表
	InitializeListHead(&linkListHead);

	PMYDATASTRUCT pData;
	ULONG i = 0;
	//在鏈表中插入10個(gè)元素
	KdPrint(("Begin insert to link list"));
	for (i=0 ; i<10 ; i++)
	{
		pData = (PMYDATASTRUCT)
			ExAllocatePool(PagedPool,sizeof(MYDATASTRUCT));
		pData->number = i;
		InsertHeadList(&linkListHead,&pData->ListEntry);
	}

	//從鏈表中取出,并顯示
	KdPrint(("Begin remove from link list\n"));
	while(!IsListEmpty(&linkListHead))
	{
		PLIST_ENTRY pEntry = RemoveTailList(&linkListHead);
		pData = CONTAINING_RECORD(pEntry,
                              MYDATASTRUCT,
                              ListEntry);
		KdPrint(("%d\n",pData->number));
		ExFreePool(pData);
	}
 
}

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

	//注冊其他驅(qū)動(dòng)調(diào)用函數(shù)入口
	pDriverObject->DriverUnload = HelloDDKUnload;
	pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutine;
	pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKDispatchRoutine;
	pDriverObject->MajorFunction[IRP_MJ_WRITE] = HelloDDKDispatchRoutine;
	pDriverObject->MajorFunction[IRP_MJ_READ] = HelloDDKDispatchRoutine;
	
	//創(chuàng)建驅(qū)動(dòng)設(shè)備對象
	status = CreateDevice(pDriverObject);

	LinkListTest();

	KdPrint(("DriverEntry end\n"));
	return status;
}

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

	pDevObj->Flags |= DO_BUFFERED_IO;
	pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;
	pDevExt->pDevice = pDevObj;
	pDevExt->ustrDeviceName = devName;
	//創(chuàng)建符號(hào)鏈接
	UNICODE_STRING symLinkName;
	RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK");
	pDevExt->ustrSymLinkName = symLinkName;
	status = IoCreateSymbolicLink( &symLinkName,&devName );
	if (!NT_SUCCESS(status)) 
	{
		IoDeleteDevice( pDevObj );
		return status;
	}
	return STATUS_SUCCESS;
}

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

		//刪除符號(hào)鏈接
		UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
		IoDeleteSymbolicLink(&pLinkName);
		pNextObj = pNextObj->NextDevice;
		IoDeleteDevice( pDevExt->pDevice );
	}
}

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美韩国日本综合| 亚洲乱码国产乱码精品精可以看| 亚洲美女在线国产| voyeur盗摄精品| 综合欧美一区二区三区| 日本福利一区二区| 亚洲a一区二区| 欧美xxxx老人做受| www.日韩在线| 亚洲一级在线观看| 精品国产乱码久久久久久久久| 国产一区二区三区在线观看免费| 国产日本欧美一区二区| 99精品视频一区| 日韩中文字幕亚洲一区二区va在线 | 国产一区二区成人久久免费影院| 国产欧美精品国产国产专区 | 国产精品色一区二区三区| 成人黄色av电影| 午夜a成v人精品| 久久久久久久久久久久久女国产乱| av亚洲精华国产精华精| 性感美女久久精品| 久久久久久亚洲综合| 色婷婷一区二区三区四区| 日韩成人一区二区三区在线观看| 久久一夜天堂av一区二区三区| 91色在线porny| 美国三级日本三级久久99| 国产精品久久二区二区| 欧美一区二区在线免费观看| 成人三级在线视频| 三级久久三级久久| 国产精品热久久久久夜色精品三区| 91国产视频在线观看| 国产一区亚洲一区| 亚洲第一主播视频| 国产日产欧美一区| 制服.丝袜.亚洲.中文.综合| 成人免费高清视频在线观看| 日本伊人色综合网| 亚洲男帅同性gay1069| 精品人在线二区三区| 欧美亚洲动漫精品| 成人午夜激情影院| 久久66热偷产精品| 午夜电影网一区| 中文字幕一区二区三区在线不卡 | 欧美国产日本韩| 91精品国产综合久久香蕉麻豆| 成人精品一区二区三区中文字幕| 久久丁香综合五月国产三级网站| 亚洲线精品一区二区三区| 中文一区二区完整视频在线观看| 91精品国产美女浴室洗澡无遮挡| 一本色道a无线码一区v| 国产精品一区二区你懂的| 蜜臀精品一区二区三区在线观看| 亚洲永久精品大片| 亚洲欧洲日韩av| 欧美激情在线观看视频免费| 26uuu久久天堂性欧美| 日韩精品资源二区在线| 欧美一区二区三区免费大片| 欧美日韩和欧美的一区二区| 97久久精品人人做人人爽| 成人av网站免费观看| 国产精品1区2区3区在线观看| 美女视频黄 久久| 蜜桃视频免费观看一区| 日韩电影免费在线| 蜜乳av一区二区三区| 日日骚欧美日韩| 日韩精品电影一区亚洲| 肉色丝袜一区二区| 日韩中文字幕1| 婷婷综合五月天| 日韩中文字幕区一区有砖一区| 亚洲国产成人91porn| 亚欧色一区w666天堂| 午夜精品久久一牛影视| 日韩精彩视频在线观看| 另类小说色综合网站| 久久国内精品视频| 国产麻豆成人传媒免费观看| 丁香婷婷综合网| 成人av网站在线| 91成人在线免费观看| 精品视频在线免费看| 欧美女孩性生活视频| 日韩一级免费一区| 日韩区在线观看| 国产亚洲女人久久久久毛片| 欧美国产日产图区| 亚洲精选一二三| 婷婷开心激情综合| 蜜臀久久99精品久久久久久9| 蜜桃精品在线观看| 福利91精品一区二区三区| 99在线精品一区二区三区| 欧美午夜片在线观看| 日韩欧美国产1| 国产欧美日韩三区| 亚洲精品少妇30p| 蜜臀av在线播放一区二区三区 | 日av在线不卡| 国产精品一卡二卡在线观看| 99精品视频在线观看免费| 色老汉av一区二区三区| 69精品人人人人| 久久久久九九视频| 亚洲一区二区三区不卡国产欧美 | 国产成人三级在线观看| 91搞黄在线观看| 日韩女同互慰一区二区| 国产亚洲精品精华液| 亚洲妇熟xx妇色黄| 国产精品一二三区| 欧美日韩国产综合视频在线观看| 久久伊99综合婷婷久久伊| 亚洲品质自拍视频| 国产一区二区三区观看| 欧美日韩免费视频| 欧美国产亚洲另类动漫| 日本vs亚洲vs韩国一区三区 | 久久成人免费网| 色诱亚洲精品久久久久久| 欧美精品一区视频| 亚洲国产乱码最新视频| 国产精品系列在线播放| 欧美日韩亚洲丝袜制服| 中日韩av电影| 狠狠色丁香久久婷婷综| 欧美又粗又大又爽| 国产精品无遮挡| 九色|91porny| 7777精品伊人久久久大香线蕉超级流畅 | 精品久久久久久久久久久久久久久 | 亚洲精品第1页| 国产不卡视频一区二区三区| 欧美高清视频在线高清观看mv色露露十八 | 欧美午夜寂寞影院| 欧美国产丝袜视频| 精品亚洲国产成人av制服丝袜| 日本高清不卡在线观看| 中国av一区二区三区| 激情五月婷婷综合网| 欧美日韩视频在线第一区| 综合久久国产九一剧情麻豆| 国产福利91精品一区| 欧美变态tickling挠脚心| 日韩精品一级中文字幕精品视频免费观看 | 99久免费精品视频在线观看 | 色系网站成人免费| 欧美国产一区二区| 国产一区欧美日韩| 日韩免费高清电影| 奇米777欧美一区二区| 欧美精品久久久久久久多人混战| 一区二区三区精品视频在线| 91免费视频大全| 亚洲欧洲日韩av| 91首页免费视频| 亚洲桃色在线一区| 91在线视频网址| 亚洲激情av在线| 欧美亚洲高清一区| 丝袜美腿亚洲综合| 91精品国产综合久久小美女| 日韩激情视频网站| 日韩精品专区在线影院重磅| 久久精品噜噜噜成人88aⅴ| 精品成人佐山爱一区二区| 麻豆国产91在线播放| 欧美哺乳videos| 国产黄色精品网站| 欧美国产亚洲另类动漫| 91小视频在线| 一区二区三区91| 欧美日韩免费不卡视频一区二区三区| 亚洲一区二区中文在线| 欧美日韩一区二区三区高清| 免费人成网站在线观看欧美高清| 精品日韩一区二区| 成人动漫视频在线| 亚洲另类在线制服丝袜| 欧美日韩精品一区二区三区四区 | 精品sm捆绑视频| 床上的激情91.| 亚洲黄色av一区| 欧美日韩精品综合在线| 久99久精品视频免费观看| 欧美韩日一区二区三区四区| 91看片淫黄大片一级| 亚洲bdsm女犯bdsm网站| 国产亚洲精品资源在线26u| 在线亚洲免费视频| 久久黄色级2电影| 亚洲美女一区二区三区| 日韩女优制服丝袜电影|