日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1 《Undocumented Windows 2000 Secrets》翻譯 --- 第三章( 五 )


// =================================================================
NTSTATUS DriverInitialize (PDRIVER_OBJECT pDriverObject,
PUNICODE_STRING pusRegistryPath)
{
PDEVICE_OBJECT pDeviceObject = NULL;
NTSTATUS ns = STATUS_DEVICE_CONFIGURATION_ERROR;
if ((ns = IoCreateDevice (pDriverObject, DEVICE_CONTEXT_,
&usDeviceName, FILE_DEVICE_CUSTOM,
0, FALSE, &pDeviceObject))
== STATUS_SUCCESS)
{
if ((ns = IoCreateSymbolicLink (&usSymbolicLinkName,
&usDeviceName))
== STATUS_SUCCESS)
{
gpDeviceObject = pDeviceObject;
gpDeviceContext = pDeviceObject->DeviceExtension;
gpDeviceContext->pDriverObject = pDriverObject;
gpDeviceContext->pDeviceObject = pDeviceObject;
}
else
{
IoDeleteDevice (pDeviceObject);
}
}
return ns;
}
// -----------------------------------------------------------------
NTSTATUS DriverEntry (PDRIVER_OBJECT pDriverObject,
PUNICODE_STRING pusRegistryPath)
{
PDRIVER_DISPATCH *ppdd;
NTSTATUS ns = STATUS_DEVICE_CONFIGURATION_ERROR;
if ((ns = DriverInitialize (pDriverObject, pusRegistryPath))
== STATUS_SUCCESS)
{
ppdd = pDriverObject->MajorFunction;
ppdd [IRP_MJ_CREATE ] =
ppdd [IRP_MJ_CREATE_NAMED_PIPE ] =
ppdd [IRP_MJ_CLOSE ] =
ppdd [IRP_MJ_READ ] =
ppdd [IRP_MJ_WRITE ] =
ppdd [IRP_MJ_QUERY_INFORMATION ] =
ppdd [IRP_MJ_SET_INFORMATION ] =
ppdd [IRP_MJ_QUERY_EA ] =
ppdd [IRP_MJ_SET_EA ] =
ppdd [IRP_MJ_FLUSH_BUFFERS ] =
ppdd [IRP_MJ_QUERY_VOLUME_INFORMATION] =
ppdd [IRP_MJ_SET_VOLUME_INFORMATION ] =
ppdd [IRP_MJ_DIRECTORY_CONTROL ] =
ppdd [IRP_MJ_FILE_SYSTEM_CONTROL ] =
ppdd [IRP_MJ_DEVICE_CONTROL ] =
ppdd [IRP_MJ_INTERNAL_DEVICE_CONTROL ] =
ppdd [IRP_MJ_SHUTDOWN ] =
ppdd [IRP_MJ_LOCK_CONTROL ] =
ppdd [IRP_MJ_CLEANUP ] =
ppdd [IRP_MJ_CREATE_MAILSLOT ] =
ppdd [IRP_MJ_QUERY_SECURITY ] =
ppdd [IRP_MJ_SET_SECURITY ] =
ppdd [IRP_MJ_POWER ] =
ppdd [IRP_MJ_SYSTEM_CONTROL ] =
ppdd [IRP_MJ_DEVICE_CHANGE ] =
ppdd [IRP_MJ_QUERY_QUOTA ] =
ppdd [IRP_MJ_SET_QUOTA ] =
ppdd [IRP_MJ_PNP ] = DriverDispatcher;
pDriverObject->DriverUnload = DriverUnload;
}
return ns;
}
// =================================================================
// END OF PROGRAM
// =================================================================
列表 3-3. 驅(qū)動程序骨架的源代碼
// TestDrv.h
// 08-07-2000
// Copyright @2005
// =================================================================
// PROGRAM IDENTIFICATION
// =================================================================
#define DRV_BUILD 1
#define DRV_VERSION_HIGH 1
#define DRV_VERSION_LOW 0
// -----------------------------------------------------------------
#define DRV_DAY 07
#define DRV_MONTH 02
#define DRV_YEAR 2005
// -----------------------------------------------------------------
// Customize these settings by editing the configuration file
// D:etc32w2k_wiz.ini
#define DRV_MODULE TestDrv
#define DRV_NAME
#define DRV_COMPANY
#define DRV_AUTHOR
#define DRV_EMAIL
#define DRV_PREFIX
// =================================================================
// HEADER FILES
// =================================================================
#include "drvinfo.h" // defines more DRV_* items
////////////////////////////////////////////////////////////////////
#ifndef _RC_PASS_
////////////////////////////////////////////////////////////////////
// =================================================================
// CONSTANTS

推薦閱讀