資源簡介
竹林蹊徑——深入淺出Windows內核驅動開發(補全版)].張佩,馬勇,董鑒源.掃描版(書簽waypoint)的 源碼
代碼片段和文件信息
/*?
*******************************************************************************?
*=?=?文件名稱:HelloDRIVER.c?
*=?=?文件描述:驅動程序HelloDRIVER例子?
*=?=?作????者:竹林蹊徑?
*=?=?編寫時間:2009-04-23?21:16:00?
*******************************************************************************?
*/?
#include?“HelloDRIVER.h“?
//*============================================================================?
//*=?=?預處理定義?
//*============================================================================?
#pragma?alloc_text(INIT?DriverEntry)
#pragma?alloc_text(PAGE?DefaultDispatch)
#pragma?alloc_text(PAGE?DriverUnload)
//*============================================================================
//*=?=?函數名稱:DriverEntry
//*=?=?功能描述:驅動程序入口函數?
//*=?=?入口參數:PDRIVER_object?PUNICODE_STRING?
//*=?=?出口參數:NTSTATUS
//*============================================================================
NTSTATUS
DriverEntry?(
????__in?PDRIVER_object?Driverobject
????__in?PUNICODE_STRING?RegistryPath
????)
{
????NTSTATUS?status;
????PDEVICE_object?deviceobject;
????PDEVICE_EXTENSION?deviceExtension;
????UNICODE_STRING?symboliclink;
????UNICODE_STRING?deviceName;
????ULONG?i;
????KdPrint((“Enter?HelloDRIVER?DriverEntry!\n“));
????
????UNREFERENCED_PARAMETER(RegistryPath);?
????
????RtlInitUnicodeString(&deviceName?L“\\Device\\HelloDRIVER“);
????//?處理派遣例程?
????for?(i?=?0;?i?<=?IRP_MJ_MAXIMUM_FUNCTION;?i++)
????{
????????Driverobject->MajorFunction[i]?=?DefaultDispatch;?
????}
????
????Driverobject->DriverUnload?=?DriverUnload;
????Driverobject->MajorFunction[IRP_MJ_CREATE]?=?DefaultDispatch;?
????Driverobject->MajorFunction[IRP_MJ_CLOSE]?=?DefaultDispatch;?
????Driverobject->MajorFunction[IRP_MJ_READ]?=?DefaultDispatch;?
????Driverobject->MajorFunction[IRP_MJ_WRITE]?=?DefaultDispatch;?
????
????//?創建設備?
????status?=?IoCreateDevice(?Driverobject
?????????????????????????????sizeof(DEVICE_EXTENSION)
?????????????????????????????&deviceName
?????????????????????????????FILE_DEVICE_UNKNOWN
?????????????????????????????0
?????????????????????????????TRUE
?????????????????????????????&deviceobject);
????if(!NT_SUCCESS(status))
????{
????????return?status;
????}
????
????deviceobject->Flags?=?DO_BUFFERED_IO;
????deviceExtension?=?(PDEVICE_EXTENSION)deviceobject->DeviceExtension;
????deviceExtension->Deviceobject?=?deviceobject;
????deviceExtension->DeviceName?=?deviceName;
????
????RtlInitUnicodeString(&symboliclink?L“\\??\\HelloDRIVER“);
????deviceExtension->Symboliclink?=?symboliclink;
????
????//?創建符號鏈接?
????status?=?IoCreateSymboliclink(&symboliclink?&deviceName);
????
????if(!NT_SUCCESS(status))
????{
????????IoDeleteDevice(deviceobject);
????????return?status;
????}
????
????KdPrint((“End?of?HelloDRIVER?DriverEntry!\n“));?
????return?status;
}
//*============================================================================
//*=?=?函數名稱:DriverUnload?
//*=?=?功能描述:驅動程序卸載函數?
//*=?=?入口參數:PDRIVER_OBJ
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-04-25?15:52??竹林蹊徑源代碼\
?????目錄???????????0??2011-01-20?23:49??竹林蹊徑源代碼\Code\
?????目錄???????????0??2011-01-20?15:55??竹林蹊徑源代碼\Code\01\
?????目錄???????????0??2011-01-20?20:16??竹林蹊徑源代碼\Code\01\HelloDRIVER\
?????文件????????4898??2011-01-20?17:00??竹林蹊徑源代碼\Code\01\HelloDRIVER\HelloDRIVER.c
?????文件????????1702??2009-11-28?18:13??竹林蹊徑源代碼\Code\01\HelloDRIVER\HelloDRIVER.h
?????文件??????????38??2009-04-24?14:13??竹林蹊徑源代碼\Code\01\HelloDRIVER\MAKEFILE
?????文件?????????216??2009-11-28?16:58??竹林蹊徑源代碼\Code\01\HelloDRIVER\ReadMe.txt
?????文件??????????94??2009-11-28?16:46??竹林蹊徑源代碼\Code\01\HelloDRIVER\SOURCES
?????目錄???????????0??2011-01-20?20:16??竹林蹊徑源代碼\Code\01\HelloWorld\
?????文件????????1011??2009-11-28?18:34??竹林蹊徑源代碼\Code\01\HelloWorld\HelloWorld.c
?????文件??????????38??2009-04-24?14:13??竹林蹊徑源代碼\Code\01\HelloWorld\MAKEFILE
?????文件?????????206??2009-11-28?16:49??竹林蹊徑源代碼\Code\01\HelloWorld\ReadMe.txt
?????文件??????????92??2009-11-28?16:06??竹林蹊徑源代碼\Code\01\HelloWorld\SOURCES
?????目錄???????????0??2011-01-20?23:21??竹林蹊徑源代碼\Code\04\
?????目錄???????????0??2011-01-20?15:55??竹林蹊徑源代碼\Code\04\Common\
?????文件????????5077??2010-03-16?10:59??竹林蹊徑源代碼\Code\04\Common\IoCtl.h
?????文件?????????609??2010-06-20?11:59??竹林蹊徑源代碼\Code\04\Common\NewDelete.h
?????文件????????3202??2010-09-15?17:49??竹林蹊徑源代碼\Code\04\Common\public.h
?????文件????????1590??2010-03-14?23:07??竹林蹊徑源代碼\Code\04\Common\Structure.h
?????目錄???????????0??2011-01-20?23:21??竹林蹊徑源代碼\Code\04\CY001_ClsInst\
?????文件????????5800??2011-01-17?12:42??竹林蹊徑源代碼\Code\04\CY001_ClsInst\classInst_CY001.c
?????文件?????????730??2011-01-17?13:11??竹林蹊徑源代碼\Code\04\CY001_ClsInst\classinst_CY001.rc
?????文件??????????60??2011-01-17?12:32??竹林蹊徑源代碼\Code\04\CY001_ClsInst\CY001_ClsInst.def
?????文件?????????269??2010-02-08?18:34??竹林蹊徑源代碼\Code\04\CY001_ClsInst\MAKEFILE
?????文件?????????718??2010-02-08?18:34??竹林蹊徑源代碼\Code\04\CY001_ClsInst\resource.h
?????文件?????????506??2011-01-17?12:32??竹林蹊徑源代碼\Code\04\CY001_ClsInst\sources
?????目錄???????????0??2011-01-20?21:19??竹林蹊徑源代碼\Code\04\WDF_CY001\
?????文件????????3022??2011-01-20?21:19??竹林蹊徑源代碼\Code\04\WDF_CY001\CY001.vcproj
?????文件?????????387??2010-03-16?10:34??竹林蹊徑源代碼\Code\04\WDF_CY001\Debug.c
?????文件???????19760??2010-06-09?10:33??竹林蹊徑源代碼\Code\04\WDF_CY001\Device.c
............此處省略321個文件信息
評論
共有 條評論