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

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

?? driver.cpp

?? <<Windows驅(qū)動開發(fā)技術(shù)詳解>>隨書光盤源碼,共23章,開發(fā)環(huán)境主要是Visual studio.
?? CPP
字號:
/************************************************************************
* 文件名稱: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個元素
	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ū)動程序,定位和申請硬件資源,創(chuàng)建內(nèi)核對象
* 參數(shù)列表:
      pDriverObject:從I/O管理器中傳進來的驅(qū)動對象
      pRegistryPath:驅(qū)動程序在注冊表的中的路徑
* 返回 值:返回初始化驅(qū)動狀態(tài)
*************************************************************************/
#pragma INITCODE
extern "C" NTSTATUS DriverEntry (
			IN PDRIVER_OBJECT pDriverObject,
			IN PUNICODE_STRING pRegistryPath	) 
{
	NTSTATUS status;
	KdPrint(("Enter DriverEntry\n"));

	//注冊其他驅(qū)動調(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ū)動設(shè)備對象
	status = CreateDevice(pDriverObject);

	LinkListTest();

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

/************************************************************************
* 函數(shù)名稱:CreateDevice
* 功能描述:初始化設(shè)備對象
* 參數(shù)列表:
      pDriverObject:從I/O管理器中傳進來的驅(qū)動對象
* 返回 值:返回初始化狀態(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)建符號鏈接
	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
* 功能描述:負責(zé)驅(qū)動程序的卸載操作
* 參數(shù)列表:
      pDriverObject:驅(qū)動對象
* 返回 值:返回狀態(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;

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

/************************************************************************
* 函數(shù)名稱:HelloDDKDispatchRoutine
* 功能描述:對讀IRP進行處理
* 參數(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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一卡二卡三卡四卡无卡| 青青青爽久久午夜综合久久午夜| 欧美色图天堂网| 日韩精品一二三四| 中文字幕色av一区二区三区| 91精品久久久久久久91蜜桃| 成人午夜av影视| 久久精品av麻豆的观看方式| 亚洲视频综合在线| 26uuu亚洲综合色| 在线看国产一区| 成人一区二区三区视频| 日本亚洲天堂网| 一区二区日韩电影| 国产精品久久久久久久久久免费看 | 在线精品视频一区二区三四| 国产精品一区二区视频| 天天影视涩香欲综合网 | 另类综合日韩欧美亚洲| 亚洲国产一区在线观看| 国产网站一区二区三区| 91精品国产免费久久综合| 日本电影欧美片| 成人免费va视频| 国产麻豆日韩欧美久久| 久久精品国产一区二区三| 天堂va蜜桃一区二区三区| 亚洲视频在线观看三级| 久久久不卡网国产精品二区| 日韩欧美亚洲国产精品字幕久久久| 欧美色手机在线观看| 91久久精品一区二区三| 91亚洲精华国产精华精华液| 国产福利一区在线观看| 国产成人亚洲综合a∨猫咪| 麻豆久久一区二区| 麻豆成人久久精品二区三区红| 午夜视频一区在线观看| 午夜精品久久久久久久99水蜜桃 | 国产成人av电影在线| 国产麻豆91精品| 国产成人午夜精品影院观看视频 | 久久99久久精品| 男女男精品网站| 久久国产福利国产秒拍| 另类人妖一区二区av| 国产在线精品一区二区| 国产精品白丝jk黑袜喷水| 国产精品一区二区91| 国产激情视频一区二区在线观看 | 91老师国产黑色丝袜在线| 一本大道av一区二区在线播放| 色婷婷综合中文久久一本| 95精品视频在线| 欧美性色欧美a在线播放| 欧美体内she精高潮| 9191精品国产综合久久久久久| 91精品久久久久久久99蜜桃| 欧美一区二区三区色| 2023国产精品| 国产精品久久久久久久岛一牛影视 | 日韩一区国产二区欧美三区| 精品免费一区二区三区| 国产日韩欧美麻豆| 亚洲欧洲无码一区二区三区| 一区二区三区国产精华| 午夜欧美在线一二页| 加勒比av一区二区| 成人av电影在线| 欧美三级在线看| 欧美精品一区二区蜜臀亚洲| 中国色在线观看另类| 亚洲综合色噜噜狠狠| 麻豆91精品视频| 99久久er热在这里只有精品15| 欧美日韩中文另类| 久久久久久久综合日本| 一区二区三区美女| 久久超级碰视频| www..com久久爱| 欧美日本视频在线| 欧美国产一区二区在线观看| 亚洲已满18点击进入久久| 久久 天天综合| 日本久久一区二区三区| 精品免费日韩av| 亚洲综合男人的天堂| 国产激情视频一区二区在线观看| 在线欧美日韩精品| 欧美精品一区二区在线播放| 一区二区三区在线视频观看| 精品亚洲成a人| 欧洲精品一区二区三区在线观看| 精品国产成人在线影院 | 国产在线日韩欧美| 欧美午夜一区二区三区免费大片| 精品久久免费看| 亚洲国产精品久久艾草纯爱| 国产麻豆午夜三级精品| 欧美美女bb生活片| 自拍av一区二区三区| 在线免费精品视频| 国产目拍亚洲精品99久久精品| 午夜精品影院在线观看| av不卡免费电影| 精品美女一区二区三区| 亚洲图片一区二区| 91网页版在线| 欧美国产国产综合| 久久99精品久久只有精品| 欧美视频在线观看一区| 亚洲桃色在线一区| 国产.欧美.日韩| 精品伦理精品一区| 日本中文字幕一区二区视频 | 日韩欧美色电影| 亚洲一区二区三区四区五区黄 | 在线精品视频免费播放| 欧美国产精品一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 在线视频亚洲一区| 亚洲日本电影在线| 成人av电影在线播放| 2020日本不卡一区二区视频| 日本va欧美va瓶| 在线不卡的av| 亚洲v精品v日韩v欧美v专区| av在线不卡免费看| 日韩一区有码在线| 92精品国产成人观看免费 | 久久理论电影网| 久久国产福利国产秒拍| 欧美一区二区免费视频| 日日嗨av一区二区三区四区| 欧美色图天堂网| 亚洲午夜视频在线| 欧美三片在线视频观看| 亚洲电影中文字幕在线观看| 在线视频中文字幕一区二区| 樱花草国产18久久久久| 色av成人天堂桃色av| 亚洲女同一区二区| 91豆麻精品91久久久久久| 一区二区三区欧美| 欧美另类一区二区三区| 天堂蜜桃91精品| 欧美大片在线观看一区二区| 久久精品噜噜噜成人88aⅴ| 欧美一区永久视频免费观看| 美女视频黄免费的久久 | 欧美欧美欧美欧美| 日韩国产欧美在线观看| 欧美一区2区视频在线观看| 蜜臀av在线播放一区二区三区| 日韩视频永久免费| 国产一区二区毛片| 国产肉丝袜一区二区| 不卡的av中国片| 亚洲综合色丁香婷婷六月图片| 欧美肥胖老妇做爰| 激情综合色综合久久综合| 亚洲国产精品成人久久综合一区| 99久久婷婷国产综合精品| 亚洲高清视频在线| 日韩免费观看2025年上映的电影 | 亚洲视频一区二区在线观看| 欧美色爱综合网| 国产一区二区三区综合| 成人欧美一区二区三区黑人麻豆 | 欧美一区二区三区免费| 国产成人丝袜美腿| 亚洲综合免费观看高清在线观看| 欧美一区三区四区| 国产suv精品一区二区6| 亚洲综合色噜噜狠狠| 精品国产污网站| 成人99免费视频| 天堂影院一区二区| 国产精品色呦呦| 在线播放亚洲一区| 国产成人高清在线| 亚洲午夜电影网| 久久精品人人做| 在线精品国精品国产尤物884a| 精品亚洲国产成人av制服丝袜| 国产精品每日更新在线播放网址| 欧美日韩国产片| 成人精品免费网站| 蜜桃久久精品一区二区| 最新不卡av在线| 日韩欧美国产一二三区| 91在线高清观看| 国产一区二区三区免费观看| 悠悠色在线精品| 欧美国产亚洲另类动漫| 欧美一区三区四区| 色视频成人在线观看免| 国产乱子轮精品视频| 天堂精品中文字幕在线| 日韩理论片在线|