資源簡介
竹林蹊徑-深入淺出Windows驅動開發源代碼.rar
竹林蹊徑 深入淺出 Windows驅動開發 源代碼

代碼片段和文件信息
/*?
*******************************************************************************?
*=?=?文件名稱: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
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????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
?????文件???????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
?????文件???????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
?????文件???????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
?????文件???????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
?????文件??????14964??2010-03-16?23:05??Code\04\WDF_CY001\DeviceIO.c
?????文件???????1679??2010-06-07?16:26??Code\04\WDF_CY001\Main.c
?????文件????????271??2009-12-03?16:07??Code\04\WDF_CY001\makefile
?????文件???????4226??2010-03-16?14:15??Code\04\WDF_CY001\Pnp_Pwr.c
?????文件???????6569??2010-09-15?15:56??Code\04\WDF_CY001\public.h
?????文件????????353??2010-12-19?22:50??Code\04\WDF_CY001\readme.txt
?????文件???????7201??2010-03-16?14:38??Code\04\WDF_CY001\ReadWrite.c
?????文件????????259??2010-04-07?20:28??Code\04\WDF_CY001\sources
............此處省略324個文件信息
評論
共有 條評論