Windows 2000驱动程序开发大全

Windows 2000驱动程序开发大全
作 者: Microsoft Corporation 冯博琴
出版社: 机械工业出版社
丛编项: 微软公司核心技术书库
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Windows
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Windows 2000驱动程序开发大全》作者简介

内容简介

本书为“Windows 2000驱动程序开发大全”的第1卷—设计指南。全书分五篇全面详尽地介绍了编写Windows 2000/98驱动程序所需的技术内容。包括利用Windows Driver Verifier构建、测试和调试Windows 2000驱动程序;怎样生成Windows Driver Model(WDM)驱动程序;描述了如何支持即插即用、电源管理特性及设备的设置和安装;详细介绍了编写内核模式、图形和网络驱动程序的细节。由于篇幅所限,DDK (Driver Development Kit)文档中有少部分内容没有包含在本套书中,但随套书附赠的光盘(见套书第2卷)中包含了DDK文档的完整信息。

图书目录

译者序

第一篇 即插即用、电源管理和设置驱动程序开发参考

第一部分 即插即用

第1章 即插即用例程

设备信息例程

注册例程

设备接口例程

PnP通知例程

删除锁例程

其他PnP例程

IoAcquireRemoveLock

IoAcquireRemoveLockEx

IoAdjustPagingPathCount

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoGetDeviceProperty

IoInitializeRemoveLock

IoInitializeRemoveLockEx

IoInvalidateDeviceRelations

IoInvalidateDeviceState

IoOpenDeviceInterfaceRegistryKey

IoOpenDeviceRegistryKey

IoRegisterDeviceInterface

IoRegisterPlugPlayNotification

IoReleaseRemoveLock

IoReleaseRemoveLockEx

IoReleaseRemoveLockAndWait

IoReleaseRemoveLockAndWaitEx

IoReportDetectedDevice

IoReportResourceForDetection

IoReportTargetDeviceChange

IoReportTargetDeviceChangeAsynchronous

IoRequestDeviceEject

IoSetDeviceInterfaceState

IoUnregisterPlugPlayNotification

第2章 即插即用IRP

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_CANCEL_STOP_DEVICE

IRP_MN_DEVICE_USAGE_NOTIFICATION

IRP_MN_EJECT

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IRP_MN_QUERY_BUS_INFORMATION

IRP_MN_QUERY_CAPABILITIES

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_DEVICE_TEXT

IRP_MN_QUERY_ID

IRP_MN_QUERY_INTERFACE

IRP_MN_QUERY_LEGACY_BUS_INFORMATION

IRP_MN_QUERY_PNP_DEVICE_STATE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_QUERY_RESOURCE_REQUIREMENTS

IRP_MN_QUERY_RESOURCES

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_READ_CONFIG

IRP_MN_REMOVE_DEVICE

IRP_MN_SET_LOCK

IRP_MN_START_DEVICE

IRP_MN_STOP_DEVICE

IRP_MN_SURPRISE_REMOVAL

IRP_MN_WRITE_CONFIG

第3章 即插即用结构

DEVICE_CAPABILITIES

DEVICE_INTERFACE_CHANGE_NOTIFICATION

HWPROFILE_CHANGE_NOTIFICATION

LPGUID

PLUGPLAY_NOTIFICATION_HEADER

PNP_DEVICE_STATE

TARGET_DEVICE_CUSTOM_NOTIFICATION

TARGET_DEVICE_REMOVAL_NOTIFICATION

第二部分 电源管理

第4章 电源管理支持例程

PoCallDriver

PoRegisterDeviceForIdleDetection

PoRegisterSystemState

PoRequestPowerIrp

PoSetDeviceBusy

PoSetPowerState

PoSetSystemState

PoStartNextPowerIrp

PoUnregisterSystemState

第5章 电源管理的I/O请求

IRP_MN_POWER_SEQUENCE

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IRP_MN_WAIT_WAKE

第6章 电池类驱动程序例程

BatteryClassInitializeDevice

BatteryClassIoctl

BatteryClassStatusNotify

BatteryClassUnload

第7章 电池微类驱动程序例程

BatteryMiniDisableStatusNotify

BatteryMiniQueryInformation

BatteryMiniQueryStatus

BatteryMiniQueryTag

BatteryMiniSetInformation

BatteryMiniSetStatusNotify

第8章 电池结构

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE

第三部分 设置

第9章 INF文件节和命令

INF文件的通用语法规则

一个INF文件样例

INF节摘要

INF命令摘要

INF Version 节

INF SourceDisksNames 节

INF SourceDisksFiles 节

INF ClassInstall32 节

INF DestinationDirs 节

INF ControlFlags 节

INF Manufacturer 节

INF Models 节

INF DDInstall 节

INF DDInstall.Services 节

INF DDInstall.HW节

INF DDInstall.CoInstallers 节

INF DDInstall.Interfaces 节

INF InterfaceInstall32节

INF DDInstall.FactDef 节

INF Strings 节

INF AddReg 命令

INF DelReg 命令

INF CopyFiles 命令

INF DelFiles 命令

INF RenFiles 命令

INF AddService 命令

INF DelService 命令

INF AddInterface 命令

INF BitReg 命令

INF LogConfig 命令

INF ProfileItems 命令

INF UpdateInis 命令

INF UpdateIniFields 命令

INF Ini2Reg 命令

第10章 安装函数

INF 文件处理函数

磁盘提示和错误处理函数

文件队列函数

缺省队列回调例程函数

文件箱函数

磁盘空间列表函数

最常用源列表函数

日志文件函数

第11章 设备安装函数

更新驱动程序函数

SetupDi 设备信息函数

SetupDi 驱动程序信息函数

SetupDi 驱动程序选择函数

SetupDi 设备安装处理程序

SetupDi 设备安装定制函数

SetupDi 安装类函数

SetupDi 类位图和图标函数

SetupDi 设备接口函数

SetupDi 注册函数

其他SetupDi函数

SetupDiAskForOEMDisk

SetupDiBuildClassInfoList

SetupDiBuildClassInfoListEx

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiCancelDriverInfoSearch

SetupDiChangeState

SetupDiClassGuidsFromName

SetupDiClassGuidsFromNameEx

SetupDiClassNameFromGuid

SetupDiClassNameFromGuidEx

SetupDiCreateDeviceInfo

SetupDiCreateDeviceInfoList

SetupDiCreateDeviceInfoListEx

SetupDiCreateDeviceInterface

SetupDiCreateDeviceInterfaceRegKey

SetupDiCreateDevRegKey

SetupDiDeleteDeviceInfo

SetupDiDeleteDeviceInterfaceData

SetupDiDeleteDeviceInterfaceRegKey

SetupDiDeleteDevRegKey

SetupDiDestroyClassImageList

SetupDiDestroyDeviceInfoList

SetupDiDestroyDriverInfoList

SetupDiDrawMiniIcon

SetupDiEnumDeviceInfo

SetupDiEnumDeviceInterfaces

SetupDiEnumDriverInfo

SetupDiGetActualSectionToInstall

SetupDiGetClassBitmapIndex

SetupDiGetClassDescription

SetupDiGetClassDescriptionEx

SetupDiGetClassDevs

SetupDiGetClassDevsEx

SetupDiGetClassImageIndex

SetupDiGetClassImageList

SetupDiGetClassImageListEx

SetupDiGetClassInstallParams

SetupDiGetDeviceInfoListClass

SetupDiGetDeviceInfoListDetail

SetupDiGetDeviceInstallParams

SetupDiGetDeviceInstanceId

SetupDiGetDeviceInterfaceAlias

SetupDiGetDeviceInterfaceDetail

SetupDiGetDeviceRegistryProperty

SetupDiGetDriverInfoDetail

SetupDiGetDriverInstallParams

SetupDiGetHwProfileFriendlyName

SetupDiGetHwProfileFriendlyNameEx

SetupDiGetHwProfileList

SetupDiGetHwProfileListEx

SetupDiGetINFClass

SetupDiGetSelectedDevice

SetupDiGetSelectedDriver

SetupDiGetWizardPage

SetupDiInstallClass

SetupDiInstallClassEx

SetupDiInstallDevice

SetupDiInstallDeviceInterfaces

SetupDiInstallDriverFiles

SetupDiLoadClassIcon

SetupDiMoveDuplicateDevice

SetupDiOpenClassRegKey

SetupDiOpenClassRegKeyEx

SetupDiOpenDeviceInfo

SetupDiOpenDeviceInterface

SetupDiOpenDeviceInterfaceRegKey

SetupDiOpenDevRegKey

SetupDiRegisterCoDeviceInstallers

SetupDiRegisterDeviceInfo

SetupDiRemoveDevice

SetupDiRemoveDeviceInterface

SetupDiSelectBestCompatDrv

SetupDiSelectDevice

SetupDiSelectOEMDrv

SetupDiSetClassInstallParams

SetupDiSetDeviceInstallParams

SetupDiSetDeviceRegistryProperty

SetupDiSetDriverInstallParams

SetupDiSetSelectedDevice

SetupDiSetSelectedDriver

SetupDiUnremoveDevice

UpdateDriverForPlugAndPlayDevices

第12章 设备安装结构

SP_ADDPROPERTYPAGE_DATA

SP_CLASSIMAGELIST_DATA

SP_CLASSINSTALL_HEADER

SP_DETECTDEVICE_PARAMS

SP_DEVICE_INTERFACE_DATA

SP_DEVICE_INTERFACE_DETAIL_DATA

SP_DEVINFO_DATA

SP_DEVINFO_LIST_DETAIL_DATA

SP_DEVINSTALL_PARAMS

SP_DRVINFO_DATA

SP_DRVINFO_DETAIL_DATA

SP_DRVINSTALL_PARAMS

SP_ENABLECLASS_PARAMS

SP_INSTALLWIZARD_DATA

SP_MOVEDEV_PARAMS

SP_NEWDEVICEWIZARD_DATA

SP_POWERMESSAGEWAKE_PARAMS

SP_PROPCHANGE_PARAMS

SP_PROPSHEETPAGE_REQUEST

SP_REMOVEDEVICE_PARAMS

SP_SELECTDEVICE_PARAMS

SP_TROUBLESHOOTER_PARAMS

SP_UNREMOVEDEVICE_PARAMS

第13章 设备安装函数代码

DIF_ADDPROPERTYPAGE_ADVANCED

DIF_ALLOW_INSTALL

DIF_DESTROYPRIVATEDATA

DIF_DETECT

DIF_INSTALLDEVICE

DIF_INSTALLDEVICEFILES

DIF_INSTALLINTERFACES

DIF_NEWDEVICEWIZARD_FINIS_HINSTALL

DIF_NEWDEVICEWIZARD_POSTA_NALYZE

DIF_NEWDEVICEWIZARD_PREA_NALYZE

DIF_NEWDEVICEWIZARD_PRESELECT

DIF_NEWDEVICEWIZARD_SELECT

DIF_POWERMESSAGEWAKE

DIF_PROPERTYCHANGE

DIF_REGISTER_COINSTALLERS

DIF_REGISTERDEVICE

DIF_REMOVE

DIF_SELECTBESTCOMPATDRV

DIF_SELECTDEVICE

DIF_TROUBLESHOOTER

DIF_UNREMOVE

保留的DIF代码

DIF_ADDPROPERTYPAGE_BASIC

DIF_ASSIGNRESOURCES

DIF_CALCDISKSPACE

DIF_DETECTCANCEL

DIF_DETECTVERIFY

DIF_ENABLECLASS

DIF_FIRSTTIMESETUP

DIF_FOUNDDEVICE

DIF_INSTALLCLASSDRIVERS

DIF_MOVEDEVICE

废弃的DIF代码

DIF_DESTROYWIZARDDATA

DIF_INSTALLWIZARD

DIF_PROPERTIES

DIF_SELECTCLASSDRIVERS

DIF_VALIDATECLASSDRIVERS

DIF_VALIDATEDRIVER

第14章 PnP配置管理程序函数

CM_Add_Empty_Log_Conf

CM_Add_Empty_Log_Conf_Ex

CM_Add_ID

CM_Add_ID_Ex

CM_Add_Res_Des

CM_Add_Res_Des_Ex

CM_Connect_Machine

CM_Disconnect_Machine

CM_Enumerate_Classes

CM_Enumerate_Classes_Ex

CM_Enumerate_Enumerators

CM_Enumerate_Enumerators_Ex

CM_Free_Log_Conf

CM_Free_Log_Conf_Ex

CM_Free_Log_Conf_Handle

CM_Free_Res_Des

CM_Free_Res_Des_Ex

CM_Free_Res_Des_Handle

CM_Free_Resource_Conflict_Handle

CM_Get_Child

CM_Get_Child_Ex

CM_Get_Depth

CM_Get_Depth_Ex

CM_Get_Device_ID

CM_Get_Device_ID_Ex

CM_Get_Device_ID_List

CM_Get_Device_ID_List_Ex

CM_Get_Device_ID_List_Size

CM_Get_Device_ID_List_Size_Ex

CM_Get_Device_ID_Size

CM_Get_Device_ID_Size_Ex

CM_Get_DevNode_Status

CM_Get_DevNode_Status_Ex

CM_Get_First_Log_Conf

CM_Get_First_Log_Conf_Ex

CM_Get_Log_Conf_Priority

CM_Get_Log_Conf_Priority_Ex

CM_Get_Next_Log_Conf

CM_Get_Next_Log_Conf_Ex

CM_Get_Next_Res_Des

CM_Get_Next_Res_Des_Ex

CM_Get_Parent

CM_Get_Parent_Ex

CM_Get_Res_Des_Data

CM_Get_Res_Des_Data_Ex

CM_Get_Res_Des_Data_Size

CM_Get_Res_Des_Data_Size_Ex

CM_Get_Resource_Conflict_Count

CM_Get_Resource_Conflict_Details

CM_Get_Sibling

CM_Get_Sibling_Ex

CM_Get_Version

CM_Get_Version_Ex

CM_Locate_DevNode

CM_Locate_DevNode_Ex

CM_Modify_Res_Des

CM_Modify_Res_Des_Ex

CM_Query_Resource_Conflict_List

CM_Reenumerate_DevNode

CM_Reenumerate_DevNode_Ex

CM_Request_Device_Eject

CM_Request_Device_Eject_Ex

第15章 PnP配置管理程序结构和类型

资源描述符结构

BUSNUMBER_DES

BUSNUMBER_RANGE

BUSNUMBER_RESOURCE

CS_DES

CS_RESOURCE

DEVPRIVATE_DES

DEVPRIVATE_RANGE

DEVPRIVATE_RESOURCE

DMA_DES

DMA_RANGE

DMA_RESOURCE

IO_DES

IO_RANGE

IO_RESOURCE

IRQ_DES

IRQ_RANGE

IRQ_RESOURCE

MEM_DES

MEM_RANGE

MEM_RESOURCE

MFCARD_DES

MFCARD_RESOURCE

PCCARD_DES

PCCARD_RESOURCE

其他的结构

CONFLICT_DETAILS

PnP 配置管理程序类型

PNP_VETO_TYPE

第16章 设备安装类

第17章 txtsetup.oem文件格式

txtsetup.oem文件中的Disks节

txtsetup.oem文件中的Defaults节

txtsetup.oem 文件中的HwComponent节

txtsetup.oem 文件中的Files.HwComponent.ID节

txtsetup.oem 文件中的Config.DriverKey节

txtsetup.oem 文件中的HardwareIds.scsi.Service节

第二篇 内核模式驱动程序开发参考

第一部分 内核模式支持例程

第1章 内核模式支持例程概述

初始化和卸载

IRP

同步

内存

DMA

PIO

驱动程序管理队列

驱动程序系统线程

数据转换

访问驱动程序管理的对象

错误处理

第2章 可执行支持例程

ExAcquireFastMutex

ExAcquireFastMutexUnsafe

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExAllocateFromNPagedLookasideList

ExAllocateFromPagedLookasideList

ExAllocateFromZone

ExAllocatePool

ExAllocatePoolWithQuota

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExConvertExclusiveToShared

ExConvertExclusiveToSharedLite

ExCreateCallback

ExDeleteNPagedLookasideList

ExDeletePagedLookasideList

ExDeleteResource

ExDeleteResourceLite

ExExtendZone

ExFreePool

ExFreeToNPagedLookasideList

ExFreeToPagedLookasideList

ExFreeToZone

ExGetCurrentResourceThread

ExGetExclusiveWaiterCount

ExGetPreviousMode

ExGetSharedWaiterCount

ExInitializeFastMutex

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

ExInitializeResource

ExInitializeResourceLite

ExInitializeSListHead

ExInitializeWorkItem

ExInitializeZone

ExInterlockedAddLargeInteger

ExInterlockedAddLargeStatistic

ExInterlockedAddUlong

ExInterlockedAllocateFromZone

ExInterlockedCompareExchange64

ExInterlockedDecrementLong

ExInterlockedExchangeAddLargeInteger

ExInterlockedExchangeUlong

ExInterlockedExtendZone

ExInterlockedFlushSList

ExInterlockedFreeToZone

ExInterlockedIncrementLong

ExInterlockedInsertHeadList

ExInterlockedInsertTailList

ExInterlockedPopEntryList

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExIsFullZone

ExIsObjectInFirstZoneSegment

ExIsProcessorFeaturePresent

ExIsResourceAcquiredExclusive

ExIsResourceAcquiredExclusiveLite

ExIsResourceAcquiredSharedLite

ExLocalTimeToSystemTime

ExNotifyCallback

ExQueryDepthSList

ExQueueWorkItem

ExRaiseAccessViolation

ExRaiseDatatypeMisalignment

ExRaiseStatus

ExRegisterCallback

ExReinitializeResourceLite

ExReleaseFastMutex

ExReleaseFastMutexUnsafe

ExReleaseResource

ExReleaseResourceForThread

ExReleaseResourceForThreadLite

ExReleaseResourceLite

ExSetResourceOwnerPointer

ExSetTimerResolution

ExSystemTimeToLocalTime

ExTryToAcquireFastMutex

ExTryToAcquireResourceExclusiveLite

ExUnregisterCallback

ExUnidCreate

InterlockedCompareExchange

InterlockedCompareExchangePointer

InterlockedDecrement

InterlockedExchange

InterlockedExchangeAdd

InterlockedExchangePointer

InterlockedIncrement

PAGED_CODE

ProbeForRead

ProbeForWrite

第3章 硬件抽象层例程

AllocateAdapterChannel

AllocateCommonBuffer

FlushAdapterBuffers

FreeAdapterChannel

FreeCommonBuffer

FreeMapRegisters

GetDmaAlignment

GetScatterGatherList

HalAllocateCommonBuffer

HalAssignSlotResources

HalExamineMBR

HalFreeCommonBuffer

HalGetAdapter

HalGetBusData

HalGetBusDataByOffset

HalGetDmaAlignmentRequirement

HalGetInterruptVector

HalReadDmaCounter

HalSetBusData

HalSetBusDataByOffset

HalTranslateBusAddress

MapTransfer

PutDmaAdapter

PutScatterGatherList

ReadDmaCounter

READ_PORT_BUFFER_UCHAR

READ_PORT_BUFFER_ULONG

READ_PORT_BUFFER_USHORT

READ_PORT_UCHAR

READ_PORT_ULONG

READ_PORT_USHORT

READ_REGISTER_BUFFER_UCHAR

READ_REGISTER_BUFFER_ULONG

READ_REGISTER_BUFFER_USHORT

READ_REGISTER_UCHAR

READ_REGISTER_ULONG

READ_REGISTER_USHORT

WRITE_PORT_BUFFER_UCHAR

WRITE_PORT_BUFFER_ULONG

WRITE_PORT_BUFFER_USHORT

WRITE_PORT_UCHAR

WRITE_PORT_ULONG

WRITE_PORT_USHORT

WRITE_REGISTER_BUFFER_UCHAR

WRITE_REGISTER_BUFFER_ULONG

WRITE_REGISTER_BUFFER_USHORT

WRITE_REGISTER_UCHAR

WRITE_REGISTER_ULONG

WRITE_REGISTER_USHORT

第4章 I/O 管理程序例程

IoAcquireCancelSpinLock

IoAcquireRemoveLock

IoAcquireRemoveLockEx

IoAdjustPagingPathCount

IoAllocateAdapterChannel

IoAssignArcName

IoAssignResources

IoAttachDevice

IoAttachDeviceByPointer

IoAttachDeviceToDeviceStack

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildPartialMdl

IoBuildSynchronousFsdRequest

IoCallDriver

IoCancelIrp

IoCheckShareAccess

IoCompleteRequest

IoConnectInterrupt

IoCopyCurrentIrpStackLocationToNext

IoCreateController

IoCreateDevice

IoCreateFile

IoCreateNotificationEvent

IoCreateSymbolicLink

IoCreateSynchronizationEvent

IoCreateUnprotectedSymbolicLink

IoDeassignArcName

IoDeleteController

IoDeleteDevice

IoDeleteSymbolicLink

IoFreeAdapterChannel

IoFreeController

IoFreeIrp

IoFreeMapRegisters

IoFreeMdl

IoFreeWorkItem

IoGetAttachedDeviceReference

IoGetBootDiskInformation

IoGetConfigurationInformation

IoGetCurrentIrpStackLocation

IoGetCurrentProcess

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoGetDeviceObjectPointer

IoGetDeviceProperty

IoGetDeviceToVerify

IoGetDmaAdapter

IoGetDriverObjectExtension

IoGetFileObjectGenericMapping

IoGetFunctionCodeFromCtlCode

IoGetInitialStack

IoGetNextIrpStackLocation

IoGetRelatedDeviceObject

IoGetRemainingStackSize

IoGetStackLimits

IoInitializeDpcRequest

IoInitializeIrp

IoInitializeRemoveLock

IoInitializeRemoveLockEx

IoInitializeTimer

IoInvalidateDeviceRelations

IoInvalidateDeviceState

IoIsErrorUserInduced

IoIsWdmVersionAvailable

IoMakeAssociatedIrp

IoMapTransfer

IoMarkIrpPending

IoOpenDeviceInterfaceRegistryKey

IoOpenDeviceRegistryKey

IoQueryDeviceDescription

IoQueueWorkItem

IoRaiseHardError

IoRaiseInformationalHardError

IoReadPartitionTable

IoRegisterDeviceInterface

IoRegisterDriverReinitialization

IoRegisterPlugPlayNotification

IoRegisterShutdownNotification

IoReleaseCancelSpinLock

IoReleaseRemoveLock

IoReleaseRemoveLockEx

IoReleaseRemoveLockAndWait

IoReleaseRemoveLockAndWaitEx

IoRemoveShareAccess

IoReportDetectedDevice

IoReportResourceForDetection

IoReportResourceUsage

IoReportTargetDeviceChange

IoReportTargetDeviceChangeAsynchronous

IoRequestDeviceEject

IoRequestDpc

IoReuseIrp

IoSetCancelRoutine

IoSetCompletionRoutine

IoSetDeviceInterfaceState

IoSetHardErrorOrVerifyDevice

IoSetNextIrpStackLocation

IoSetPartitionInformation

IoSetShareAccess

IoSetThreadHardErrorMode

IoSizeOfIrp

IoSkipCurrentIrpStackLocation

IoStartNextPacket

IoStartNextPacketByKey

IoStartPacket

IoStartTimer

IoStopTimer

IoUnregisterPlugPlayNotification

IoUnregisterShutdownNotification

IoUpdateShareAccess

IoWMIAllocateInstanceIds

IoWMIDeviceObjectToProviderId

IoWMIRegistrationControl

IoWMISuggestInstanceName

IoWMIWriteEvent

IoWriteErrorLogEntry

IoWritePartitionTable

第5章 内核例程

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeBugCheck

KeBugCheckEx

KeCancelTimer

KeClearEvent

KeDelayExecutionThread

KeDeregisterBugCheckCallback

KeEnterCriticalRegion

KeFlushIoBuffers

KeGetCurrentIrql

KeGetCurrentProcessorNumber

KeGetCurrentThread

KeGetDcacheFillSize

KeInitializeCallbackRecord

KeInitializeDeviceQueue

KeInitializeDpc

KeInitializeEvent

KeInitializeMutex

KeInitializeSemaphore

KeInitializeSpinLock

KeInitializeTimer

KeInitializeTimerEx

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeInsertQueueDpc

KeLeaveCriticalRegion

KeLowerIrql

KePulseEvent

KeQueryInterruptTime

KeQueryPerformanceCounter

KeQueryPriorityThread

KeQuerySystemTime

KeQueryTickCount

KeQueryTimeIncrement

KeRaiseIrql

KeRaiseIrqlToDpcLevel

KeReadStateEvent

KeReadStateMutex

KeReadStateSemaphore

KeReadStateTimer

KeRegisterBugCheckCallback

KeReleaseMutex

KeReleaseSemaphore

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeRemoveByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue

KeRemoveQueueDpc

KeResetEvent

KeRestoreFloatingPointState

KeSaveFloatingPointState

KeSetBasePriorityThread

KeSetEvent

KeSetImportanceDpc

KeSetTargetProcessorDpc

KeSetPriorityThread

KeSetTimer

KeSetTimerEx

KeStallExecutionProcessor

KeSynchronizeExecution

KeWaitForMultipleObjects

KeWaitForMutexObject

KeWaitForSingleObject

第6章 内存管理程序例程

ADDRESS_AND_SIZE_TO_SPAN_PAGES

ARGUMENT_PRESENT

BYTE_OFFSET

BYTES_TO_PAGES

COMPUTE_PAGES_SPANNED

CONTAINING_RECORD

FIELD_OFFSET

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmAllocateNonCachedMemory

MmAllocatePagesForMdl

MmBuildMdlForNonPagedPool

MmCreateMdl

MmFreeContiguousMemory

MmFreeContiguousMemorySpecityCache

MmFreeNonCachedMemory

MmFreePagesFromMdl

MmGetMdlByteCount

MmGetMdlByteOffset

MmGetMdlPfnArray

MmGetMdlVirtualAddress

MmGetPhysicalAddress

MmGetSystemAddressForMdl

MmGetSystemAddressForMdlSafe

MmInitializeMdl

MmIsAddressValid

MmIsNonPagedSystemAddressValid

MmIsThisAnNtAsSystem

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmMapIoSpace

MmMapLockedPages

MmMapLockedPagesSpecifyCache

MmPageEntireDriver

MmResetDriverPaging

MmPrepareMdlForReuse

MmProbeAndLockPages

MmQuerySystemSize

MmSizeOfMdl

MmUnlockPages

MmUnlockPagableImageSection

MmUnmapIoSpace

MmUnmapLockedPages

PAGE_ALIGN

ROUND_TO_PAGES

第7章 对象管理程序例程

ObDereferenceObject

ObGetObjectSecurity

ObReferenceObject

ObReferenceObjectByHandle

ObReferenceObjectByPointer

ObReleaseObjectSecurity

第8章 进程结构例程

PsCreateSystemThread

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsGetVersion

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine

PsTerminateSystemThread

第9章 运行时库例程

InitializeListHead

InitializeObjectAttributes

InsertHeadList

InsertTailList

IsListEmpty

PopEntryList

PushEntryList

RemoveEntryList

RemoveHeadList

RemoveTailList

RtlAnsiStringToUnicodeSize

RtlAnsiStringToUnicodeString

RtlAppendUnicodeStringToString

RtlAppendUnicodeToString

RtlAreBitsClear

RtlAreBitsSet

RtlCharToInteger

RtlCheckBit

RtlCheckRegistryKey

RtlClearAllBits

RtlClearBits

RtlCompareMemory

RtlCompareString

RtlCompareUnicodeString

RtlConvertLongToLargeInteger

RtlConvertLongToLuid

RtlConvertUlongToLargeInteger

RtlConvertUlongToLuid

RtlCopyBytes

RtlCopyMemory

RtlCopyMemory32

RtlCopyString

RtlCopyUnicodeString

RtlCreateRegistryKey

RtlCreateSecurityDescriptor

RtlDeleteRegistryValue

RtlEnlargedIntegerMultiply

RtlEnlargedUnsignedDivide

RtlEnlargedUnsignedMultiply

RtlEqualLuid

RtlEqualMemory

RtlEqualString

RtlEqualUnicodeString

RtlExtendedIntegerMultiply

RtlExtendedLargeIntegerDivide

RtlExtendedMagicDivide

RtlFillBytes

RtlFillMemory

RtlFindClearBits

RtlFindClearBitsAndSet

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLeastSignificantBit

RtlFindMostSignificantBit

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlFindSetBits

RtlFindSetBitsAndClear

RtlFreeAnsiString

RtlFreeUnicodeString

RtlGetVersion

RtlGUIDFromString

RtlInitAnsiString

RtlInitializeBitMap

RtlInitString

RtlInitUnicodeString

RtlInt64ToUnicodeString

RtlIntegerToUnicodeString

RtlIntPtrToUnicodeString

RtlLargeIntegerAdd

RtlLargeIntegerAnd

RtlLargeIntegerArithmeticShift

RtlLargeIntegerDivide

RtlLargeIntegerEqualTo

RtlLargeIntegerEqualToZero

RtlLargeIntegerGreaterThan

RtlLargeIntegerGreaterThanOrEqualTo

RtlLargeIntegerGreaterOrEqualToZero

RtlLargeIntegerGreaterThanZero

RtlLargeIntegerLessThan

RtlLargeIntegerLessThanOrEqualTo

RtlLargeIntegerLessOrEqualToZero

RtlLargeIntegerLessThanZero

RtlLargeIntegerNegate

RtlLargeIntegerNotEqualTo

RtlLargeIntegerNotEqualToZero

RtlLargeIntegerShiftLeft

RtlLargeIntegerShiftRight

RtlLargeIntegerSubtract

RtlLengthSecurityDescriptor

RtlMoveMemory

RtlNumberOfClearBits

RtlNumberOfSetBits

RtlPrefixUnicodeString

RtlQueryRegistryValues

RtlRetrieveUlong

RtlRetrieveUshort

RtlSetAllBits

RtlSetBits

RtlSetDaclSecurityDescriptor

RtlStoreUlong

RtlStoreUlonglong

RtlStoreUlongPtr

RtlStoreUshort

RtlStringFromGUID

RtlTimeFieldsToTime

RtlTimeToTimeFields

RtlUlongByteSwap

RtlUlonglongByteSwap

RtlUnicodeStringToAnsiSize

RtlUnicodeStringToAnsiString

RtlUnicodeStringToInteger

RtlUpcaseUnicodeChar

RtlUpcaseUnicodeString

RtlUpperChar

RtlUpperString

RtlUshortByteSwap

RtlValidSecurityDescriptor

RtlVerifyVersionInfo

RtlVolumeDeviceToDosName

RtlWriteRegistryValue

RtlxUnicodeStringToAnsiSize

RtlZeroBytes

RtlZeroMemory

第10章 安全引用监视器例程

SeAccessCheck

SeAssignSecurity

SeAssignSecurityEx

SeDeassignSecurity

SeSinglePrivilegeCheck

SeValidSecurityDescriptor

第11章 ZwXxx例程

ZwClose

ZwCreateDirectoryObject

ZwCreateFile

ZwCreateKey

ZwDeleteKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwFlushKey

ZwMakeTemporaryObject

ZwMapViewOfSection

ZwOpenFile

ZwOpenKey

ZwOpenSection

ZwOpenSymbolicLinkObject

ZwQueryInformationFile

ZwQueryKey

ZwQuerySymbolicLinkObject

ZwQueryValueKey

ZwReadFile

ZwSetInformationFile

ZwSetInformationThread

ZwSetValueKey

ZwUnmapViewOfSection

ZwWriteFile

第12章 系统结构

ANSI_STRING

CM_EISA_FUNCTION_INFORMATION

CM_EISA_SLOT_INFORMATION

CM_FLOPPY_DEVICE_DATA

CM_FULL_RESOURCE_DESCRIPTOR

CM_INT13_DRIVE_PARAMETER

CM_KEYBOARD_DEVICE_DATA

CM_MCA_POS_DATA

CM_PARTIAL_RESOURCE_DESCRIPTOR

CM_PARTIAL_RESOURCE_LIST

CM_RESOURCE_LIST

CM_SCSI_DEVICE_DATA

CM_SERIAL_DEVICE_DATA

CONTROLLER_OBJECT

DEVICE_DESCRIPTION

DEVICE_OBJECT

DMA_ADAPTER

DMA_OPERATIONS

DRIVER_OBJECT

FILE_ALIGNMENT_INFORMATION

FILE_BASIC_INFORMATION

FILE_DISPOSITION_INFORMATION

FILE_END_OF_FILE_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FULL_EA_INFORMATION

FILE_NAME_INFORMATION

FILE_OBJECT

FILE_POSITION_INFORMATION

FILE_STANDARD_INFORMATION

IO_RESOURCE_DESCRIPTOR

IO_RESOURCE_LIST

IO_RESOURCE_REQUIREMENTS_LIST

IO_STACK_LOCATION

IO_STATUS_BLOCK

IRP

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

OEM_STRING

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

POOL_TYPE

RTL_OSVERSIONINFOW

RTL_OSVERSIONINFOEXW

SCATTER_GATHER_LIST

UNICODE_STRING

第13章 IRP函数代码和IOCTL

根据设备对象类型决定需要的I/O支持

公共I/O请求的输入和输出参数

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_FLUSH_BUFFERS

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_PNP

IRP_MJ_POWER

IRP_MJ_READ

IRP_MJ_SHUTDOWN

IRP_MJ_WRITE

定义I/O控制代码

设备类型专有的I/O请求

第二部分 串行和并行接口驱动程序

第14章 串行接口驱动程序参考

Serial主要I/O请求

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_FLUSH_BUFFERS

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_PNP

IRP_MJ_POWER

IRP_MJ_QUERY_INFORMATION

IRP_MJ_READ

IRP_MJ_SET_INFORMATION

IRP_MJ_SYSTEM_CONTROL

IRP_MJ_WRITE

Serial设备控制请求

IOCTL_SERIAL_CLEAR_STATS

IOCTL_SERIAL_CLR_DTR

IOCTL_SERIAL_CLR_RTS

IOCTL_SERIAL_CONFIG_SIZE

IOCTL_SERIAL_GET_BAUD_RATE

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_COMMSTATUS

IOCTL_SERIAL_GET_DTRRTS

IOCTL_SERIAL_GET_HANDFLOW

IOCTL_SERIAL_GET_LINE_CONTROL

IOCTL_SERIAL_GET_MODEM_CONTROL

IOCTL_SERIAL_GET_MODEMSTATUS

IOCTL_SERIAL_GET_PROPERTIES

IOCTL_SERIAL_GET_STATS

IOCTL_SERIAL_GET_TIMEOUTS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_IMMEDIATE_CHAR

IOCTL_SERIAL_LSRMST_INSERT

IOCTL_SERIAL_PURGE

IOCTL_SERIAL_RESET_DEVICE

IOCTL_SERIAL_SET_BAUD_RATE

IOCTL_SERIAL_SET_BREAK_OFF

IOCTL_SERIAL_SET_BREAK_ON

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_SET_DTR

IOCTL_SERIAL_SET_FIFO_CONTROL

IOCTL_SERIAL_SET_HANDFLOW

IOCTL_SERIAL_SET_LINE_CONTROL

IOCTL_SERIAL_SET_MODEM_CONTROL

IOCTL_SERIAL_SET_QUEUE_SIZE

IOCTL_SERIAL_SET_RTS

IOCTL_SERIAL_SET_TIMEOUTS

IOCTL_SERIAL_SET_WAIT_MASK

IOCTL_SERIAL_SET_XOFF

IOCTL_SERIAL_SET_XON

IOCTL_SERIAL_WAIT_ON_MASK

IOCTL_SERIAL_XOFF_COUNTER

Serial内部设备控制请求

IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS

IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE

IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE

IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS

第15章 Serenum驱动程序参考

Serenum设备控制请求

IOCTL_SERENUM_PORT_DESC

IOCTL_SERENUM_GET_PORT_NAME

Serenum内部设备控制请求

IOCTL_INTERNAL_SERENUM_REMOVE_SELF

第16章 Parport驱动程序参考

Parport主要I/O请求

IRP_MJ_CREATE

IRP_MJ_INTERNAL_DEVICE_CONTROL

Parport内部设备控制请求

IOCTL_INTERNAL_DESELECT_DEVICE

IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_INIT_1284_3_BUS

IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE

IOCTL_INTERNAL_PARALLEL_PORT_FREE

IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE

IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_Xxx

Parport数据类型

MORE_PARALLEL_PORT_INFOR-MATION

PARALLEL_1284_COMMAND

PARALLEL_CHIP_MODE

PARALLEL_PNP_INFORMATION

PARALLEL_PORT_INFORMATION

PARALLEL_INTERRUPT_INFORMATION

PARALLEL_INTERRUPT_SERVICE_ROUTINE

Parport回调例程

ClearChipMode

DeselectDevice

FreePort

FreePortFromInterruptLevel

QueryNumWaiters

TryAllocatePort

TryAllocatePortAtInterruptLevel

TrySelectDevice

TrySetChipMode

第17章 Parclass驱动程序参考

Parclass主要I/O请求

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_QUERY_INFORMATION

IRP_MJ_READ

IRP_MJ_WRITE

Parclass设备控制请求

IOCTL_IEEE1284_GET_MODE

IOCTL_IEEE1284_NEGOTIATE

IOCTL_PAR_GET_DEFAULT_MODES

IOCTL_PAR_GET_DEVICE_CAPS

IOCTL_PAR_IS_PORT_FREE

IOCTL_PAR_QUERY_DEVICE_ID

IOCTL_PAR_QUERY_DEVICE_ID_SIZE

IOCTL_PAR_QUERY_INFORMATION

IOCTL_PAR_QUERY_RAW_DEVICE_ID

IOCTL_PAR_SET_INFORMATION

IOCTL_PAR_SET_READ_ADDRESS

IOCTL_PAR_SET_WRITE_ADDRESS

IOCTL_SERIAL_GET_TIMEOUTS

IOCTL_SERIAL_SET_TIMEOUTS

Parclass内部设备控制请求

IOCTL_INTERNAL_DISCONNECT_IDLE

IOCTL_INTERNAL_LOCK_PORT

IOCTL_INTERNAL_PARCLASS_CONNECT

IOCTL_INTERNAL_PARCLASS_DISCONNECT

IOCTL_INTERNAL_PARDOT3_CONNECT

IOCTL_INTERNAL_PARDOT3_DISCONNECT

IOCTL_INTERNAL_UNLOCK_PORT

Parclass数据类型

PAR_QUERY_INFORMATION

PAR_SET_INFORMATION

PARCLASS_INFORMATION

PARCLASS_NEGOTIATION_MASK

Parclass回调例程

DetermineIeeeModes

IeeeFwdToRevMode

IeeeRevToFwdMode

NegotiateIeeeMode

ParallelRead

ParallelWrite

TerminateIeeeMode

第三部分 输入设备的驱动程序

第18章 HID 输入/输出请求

HID类驱动程序支持的I/O请求

IOCTL_HID_GET_POLL_FREQUENCY_MSEC

IOCTL_HID_SET_POLL_FREQUENCY_MSEC

IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_HID_GET_COLLECTION_INFORMATION

IOCTL_HID_GET_COLLECTION_DESCRIPTOR

IOCTL_HID_FLUSH_QUEUE

IOCTL_HID_GET_FEATURE

IOCTL_HID_SET_FEATURE

IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_HID_GET_HARDWARE_ID

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING

IOCTL_HID_GET_INDEXED_STRING

HID微驱动程序支持的I/O请求

IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_HID_ACTIVATE_DEVICE

IOCTL_HID_DEACTIVATE_DEVICE

IOCTL_HID_GET_DEVICE_ATTRIBUTES

IOCTL_HID_GET_DEVICE_DESCRIPTOR

IOCTL_HID_GET_FEATURE

IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_REPORT_DESCRIPTOR

IOCTL_HID_GET_STRING

IOCTL_HID_READ_REPORT

IOCTL_HID_SET_FEATURE

IOCTL_HID_WRITE_REPORT

第19章 客户HID支持例程

HidD_FlushQueue

HidD_FreePreparsedData

HidD_GetAttributes

HidD_GetConfiguration

HidD_GetFeature

HidD_GetHidGuid

HidD_GetIndexedString

HidD_GetManufacturerString

HidD_GetNumInputBuffers

HidD_GetPhysicalDescriptor

HidD_GetPreparsedData

HidD_GetProductString

HidD_GetSerialNumberString

HidD_SetConfiguration

HidD_SetFeature

HidD_SetNumInputBuffers

HidP_GetButtonCaps

HidP_GetButtons

HidP_GetButtonsEx

HidP_GetCaps

HidP_GetLinkCollectionNodes

HidP_GetScaledUsageValue

HidP_GetSpecificButtonCaps

HidP_GetSpecificValueCaps

HidP_GetUsageValue

HidP_GetUsageValueArray

HidP_GetValueCaps

HidP_MaxUsageListLength

HidP_SetButtons

HidP_SetScaledUsageValue

HidP_SetUsageValue

HidP_SetUsageValueArray

HidP_TranslateUsagesToI8042ScanCodes

HidP_UsageListDifference

第20章 客户HID结构

HID_COLLECTION_INFORMATION

HIDP_COLLECTION_DESC

HIDD_ATTRIBUTES

HIDD_CONFIGURATION

HIDP_BUTTON_CAPS

HIDP_CAPS

HIDP_LINK_COLLECTION_NODE

HIDP_VALUE_CAPS

USAGE_AND_PAGE

第21章 微驱动程序HID支持例程

HidRegisterMinidriver

第22章 微驱动程序HID结构

HID_DEVICE_ATTRIBUTES

HID_DEVICE_EXTENSION

HID_MINIDRIVER_REGISTRATION

HID_XFER_PACKET

第23章 Kbdclass驱动程序参考

Kbdclass主要I/O请求

Kbdclass设备控制请求

Kbdclass类服务回调例程

KeyboardClassServiceCallback

第24章 Mouclass驱动程序参考

Mouclass主要I/O请求

IOCTL-Xxx设备控制请求

Mouclass类服务回调例程

第25章 I8042prt驱动程序参考

I8042prt键盘主要I/O请求

I8042prt键盘内部设备控制请求

I8042prt鼠标主要I/O请求

I8042prt鼠标内部设备控制请求

I8042prt键盘回调例程

I8042prt鼠标回调例程

第26章 Kbfiltr驱动程序参考

Kbfiltr内部设备控制请求

Kbfiltr回调例程

第27章 Moufiltr驱动程序参考

Moufiltr内部设备控制请求

Moufiltr回调例程

第四部分 USB驱动程序

第28章 USB客户驱动程序I/O请求

IOCTL_INTERNAL_USB_SUBMIT_URB

IOCTL_INTERNAL_USB_RESET_PORT

IOCTL_INTERNAL_USB_GET_PORT_STATUS

IOCTL_INTERNAL_USB_ENABLE_PORT

IOCTL_INTERNAL_USB_GET_HUB_COUNT

IOCTL_INTERNAL_USB_CYCLE_PORT

IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO

IOCTL_INTERNAL_USB_GET_HUB_NAME

IOCTL_INTERNAL_USB_GET_BUS_INFO

IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME

第29章 USB客户支持例程

GET_ISO_URB_SIZE

GET_SELECT_CONFIGURATION_REQUEST_SIZE

GET_SELECT_INTERFACE_REQUEST_SIZE

GET_USBD_INTERFACE_SIZE

UsbBuildFeatureRequest

UsbBuildGetDescriptorRequest

UsbBuildGetStatusRequest

UsbBuildInterruptOrBulkTransferRequest

UsbBuildSelectConfigurationRequest

UsbBuildSelectInterfaceRequest

UsbBuildVendorRequest

USBD_CreateConfigurationRequest

USBD_CreateConfigurationRequestEx

USBD_GetInterfaceLength

USBD_GetUSBDIVersion

USBD_ParseConfigurationDescriptor

USBD_ParseConfigurationDescriptorEx

USBD_ParseDescriptors

USBD_RegisterHcFilter

第30章 USB结构

URB

_URB_BULK_OR_INTERRUPT_TRANSFER

_URB_CONTROL_DESCRIPTOR_REQUEST

_URB_CONTROL_FEATURE_REQUEST

_URB_CONTROL_GET_CONFIGURATIONREQUEST

_URB_CONTROL_GET_INTERFACE_REQUEST

_URB_CONTROL_GET_STATUS_REQUEST

_URB_CONTROL_TRANSFER

_URB_CONTROL_VENDOR_OR_CLASS_REQUEST

_URB_FRAME_LENGTH_CONTROL

_URB_GET_CURRENT_FRAME_NUMBER

_URB_GET_FRAME_LENGTH

_URB_HEADER

_URB_ISOCH_TRANSFER

_URB_PIPE_REQUEST

_URB_SELECT_CONFIGURATION

_URB_SELECT_INTERFACE

_URB_SET_FRAME_LENGTH

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR

USB_ENDPOINT_DESCRIPTOR

USB_INTERFACE_DESCRIPTOR

USB_HUB_NAME

USB_ROOT_HUB_NAME

USB_STRING_DESCRIPTOR

USBD_INTERFACE_INFORMATION

USBD_INTERFACE_LIST_ENTRY

USBD_PIPE_INFORMATION

USBD_ISO_PACKET_DESCRIPTOR

第五部分 IEEE 1394驱动程序

第31章 IEEE 1394总线I/O请求

IOCTL_CLASS_1394

REQUEST_ALLOCATE_ADDRESS_RANGE

REQUEST_ASYNC_LOCK

REQUEST_ASYNC_READ

REQUEST_ASYNC_STREAM

REQUEST_ASYNC_WRITE

REQUEST_BUS_RESET

REQUEST_BUS_RESET_NOTIFICATION

REQUEST_CONTROL

REQUEST_FREE_ADDRESS_RANGE

REQUEST_GET_ADDR_FROM_DEVICE_OBJECT

REQUEST_GET_CONFIGURATION_INFO

REQUEST_GET_GENERATION_COUNT

REQUEST_GET_LOCAL_HOST_INFO

REQUEST_GET_SPEED_BETWEEN_DEVICES

REQUEST_GET_SPEED_TOPOLOGY_MAPS

REQUEST_ISOCH_ALLOCATE_BANDWIDTH

REQUEST_ISOCH_ALLOCATE_CHANNEL

REQUEST_ISOCH_ALLOCATE_RESOURCES

REQUEST_ISOCH_ATTACH_BUFFERS

REQUEST_ISOCH_DETACH_BUFFERS

REQUEST_ISOCH_FREE_BANDWIDTH

REQUEST_ISOCH_FREE_CHANNEL

REQUEST_ISOCH_FREE_RESOURCES

REQUEST_ISOCH_LISTEN

REQUEST_ISOCH_QUERY_CYCLE_TIME

REQUEST_ISOCH_QUERY_RESOURCES

REQUEST_ISOCH_SET_CHANNEL_BANDWIDTH

REQUEST_ISOCH_STOP

REQUEST_ISOCH_TALK

REQUEST_SEND_PHY_CONFIG_PACKET

REQUEST_SET_DEVICE_XMIT_PROPERTIES

REQUEST_SET_LOCAL_HOST_PROPERTIES

第32章 IEEE 1394结构

ADDRESS_FIFO

ADDRESS_OFFSET

ADDRESS_RANGE

CONFIG_ROM

CYCLE_TIME

GET_LOCAL_HOST_INFO1

GET_LOCAL_HOST_INFO2

GET_LOCAL_HOST_INFO3

GET_LOCAL_HOST_INFO4

GET_LOCAL_HOST_INFO5

GET_LOCAL_HOST_INFO6

IO_ADDRESS

IRB

ISOCH_DESCRIPTOR

NODE_ADDRESS

NOTIFICATION_INFO

PHY_CONFIGURATION_PACKET

SELF_ID

SELF_ID_MORE

SPEED_MAP

TEXTUAL_LEAF

TOPOLOGY_MAP

第六部分 PCMCIA驱动程序

第33章 PCMCIA_INTERFACE_STANDARD接口内存卡例程

PCMCIA_IS_WRITE_PROTECTED

PCMCIA_MODIFY_MEMORY_WINDOW

PCMCIA_SET_VPP

第七部分 SMB客户驱动程序

第34章 SMB IOCTL

SMB_BUS_REQUEST

SMB_DEREGISTER_ALARM_NOTIFY

SMB_REGISTER_ALARM_NOTIFY

第35章 SMB结构

SMB_CLASS

SMB_REGISTER_ALARM

SMB_REQUEST

第八部分 WMI内核模式数据提供者

第36章 WMI IRP

IRP_MN_CHANGE_SINGLE_INSTANCE

IRP_MN_CHANGE_SINGLE_ITEM

IRP_MN_DISABLE_COLLECTION

IRP_MN_DISABLE_EVENTS

IRP_MN_ENABLE_COLLECTION

IRP_MN_ENABLE_EVENTS

IRP_MN_EXECUTE_METHOD

IRP_MN_QUERY_ALL_DATA

IRP_MN_QUERY_SINGLE_INSTANCE

IRP_MN_REGINFO

第37章 WMI库支持例程

WmiCompleteRequest

WmiFireEvent

WmiSystemControl

第38章 WMI库回调例程

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

第39章 WMI结构

WMILIB_CONTEXT

WMIGUIDREGINFO

WMIREGGUID

WMIREGINFO

WNODE_ALL_DATA

WNODE_EVENT_ITEM

WNODE_EVENT_REFERENCE

WNODE_HEADER

WNODE_METHOD_ITEM

WNODE_SINGLE_INSTANCE

WNODE_SINGLE_ITEM

WNODE_TOO_SMALL

第40章 WMI事件跟踪结构

EVENT_TRACE_HEADER “Windows 2000驱动程序开发大全”套书包括2卷,本书为套书的第2卷—参考手册。

本手册由微软公司提供,书中完整地描述了Windows 2000驱动模块信息。全书分为二篇,第一篇是即插即用、电源管理和设置驱动程序开发参考,由即插即用、电源管理、设置三部分组成;第二篇是内核模式驱动程序开发参考,由内核模式支持例程、串行和并行接口驱动程序、输入设备驱动程序、USB驱动程序、IEEE 1394驱动程序、PCMCIA驱动程序、SMB客户驱动程序和WMI内核模式数据提供者八部分组成。

本书内容全面、翔实,是Windows 2000驱动程序开发的权威参考资料。

译者序

第一篇 即插即用、电源管理和设置驱动程序开发参考

第一部分 即插即用

第1章 即插即用例程

设备信息例程

注册例程

设备接口例程

PnP通知例程

删除锁例程

其他PnP例程

IoAcquireRemoveLock

IoAcquireRemoveLockEx

IoAdjustPagingPathCount

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoGetDeviceProperty

IoInitializeRemoveLock

IoInitializeRemoveLockEx

IoInvalidateDeviceRelations

IoInvalidateDeviceState

IoOpenDeviceInterfaceRegistryKey

IoOpenDeviceRegistryKey

IoRegisterDeviceInterface

IoRegisterPlugPlayNotification

IoReleaseRemoveLock

IoReleaseRemoveLockEx

IoReleaseRemoveLockAndWait

IoReleaseRemoveLockAndWaitEx

IoReportDetectedDevice

IoReportResourceForDetection

IoReportTargetDeviceChange

IoReportTargetDeviceChangeAsynchronous

IoRequestDeviceEject

IoSetDeviceInterfaceState

IoUnregisterPlugPlayNotification

第2章 即插即用IRP

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_CANCEL_STOP_DEVICE

IRP_MN_DEVICE_USAGE_NOTIFICATION

IRP_MN_EJECT

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IRP_MN_QUERY_BUS_INFORMATION

IRP_MN_QUERY_CAPABILITIES

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_DEVICE_TEXT

IRP_MN_QUERY_ID

IRP_MN_QUERY_INTERFACE

IRP_MN_QUERY_LEGACY_BUS_INFORMATION

IRP_MN_QUERY_PNP_DEVICE_STATE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_QUERY_RESOURCE_REQUIREMENTS

IRP_MN_QUERY_RESOURCES

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_READ_CONFIG

IRP_MN_REMOVE_DEVICE

IRP_MN_SET_LOCK

IRP_MN_START_DEVICE

IRP_MN_STOP_DEVICE

IRP_MN_SURPRISE_REMOVAL

IRP_MN_WRITE_CONFIG

第3章 即插即用结构

DEVICE_CAPABILITIES

DEVICE_INTERFACE_CHANGE_NOTIFICATION

HWPROFILE_CHANGE_NOTIFICATION

LPGUID

PLUGPLAY_NOTIFICATION_HEADER

PNP_DEVICE_STATE

TARGET_DEVICE_CUSTOM_NOTIFICATION

TARGET_DEVICE_REMOVAL_NOTIFICATION

第二部分 电源管理

第4章 电源管理支持例程

PoCallDriver

PoRegisterDeviceForIdleDetection

PoRegisterSystemState

PoRequestPowerIrp

PoSetDeviceBusy

PoSetPowerState

PoSetSystemState

PoStartNextPowerIrp

PoUnregisterSystemState

第5章 电源管理的I/O请求

IRP_MN_POWER_SEQUENCE

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IRP_MN_WAIT_WAKE

第6章 电池类驱动程序例程

BatteryClassInitializeDevice

BatteryClassIoctl

BatteryClassStatusNotify

BatteryClassUnload

第7章 电池微类驱动程序例程

BatteryMiniDisableStatusNotify

BatteryMiniQueryInformation

BatteryMiniQueryStatus

BatteryMiniQueryTag

BatteryMiniSetInformation

BatteryMiniSetStatusNotify

第8章 电池结构

BATTERY_INFORMATION

BATTERY_MANUFACTURE_DATE

BATTERY_REPORTING_SCALE

第三部分 设置

第9章 INF文件节和命令

INF文件的通用语法规则

一个INF文件样例

INF节摘要

INF命令摘要

INF Version 节

INF SourceDisksNames 节

INF SourceDisksFiles 节

INF ClassInstall32 节

INF DestinationDirs 节

INF ControlFlags 节

INF Manufacturer 节

INF Models 节

INF DDInstall 节

INF DDInstall.Services 节

INF DDInstall.HW节

INF DDInstall.CoInstallers 节

INF DDInstall.Interfaces 节

INF InterfaceInstall32节

INF DDInstall.FactDef 节

INF Strings 节

INF AddReg 命令

INF DelReg 命令

INF CopyFiles 命令

INF DelFiles 命令

INF RenFiles 命令

INF AddService 命令

INF DelService 命令

INF AddInterface 命令

INF BitReg 命令

INF LogConfig 命令

INF ProfileItems 命令

INF UpdateInis 命令

INF UpdateIniFields 命令

INF Ini2Reg 命令

第10章 安装函数

INF 文件处理函数

磁盘提示和错误处理函数

文件队列函数

缺省队列回调例程函数

文件箱函数

磁盘空间列表函数

最常用源列表函数

日志文件函数

第11章 设备安装函数

更新驱动程序函数

SetupDi 设备信息函数

SetupDi 驱动程序信息函数

SetupDi 驱动程序选择函数

SetupDi 设备安装处理程序

SetupDi 设备安装定制函数

SetupDi 安装类函数

SetupDi 类位图和图标函数

SetupDi 设备接口函数

SetupDi 注册函数

其他SetupDi函数

SetupDiAskForOEMDisk

SetupDiBuildClassInfoList

SetupDiBuildClassInfoListEx

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiCancelDriverInfoSearch

SetupDiChangeState

SetupDiClassGuidsFromName

SetupDiClassGuidsFromNameEx

SetupDiClassNameFromGuid

SetupDiClassNameFromGuidEx

SetupDiCreateDeviceInfo

SetupDiCreateDeviceInfoList

SetupDiCreateDeviceInfoListEx

SetupDiCreateDeviceInterface

SetupDiCreateDeviceInterfaceRegKey

SetupDiCreateDevRegKey

SetupDiDeleteDeviceInfo

SetupDiDeleteDeviceInterfaceData

SetupDiDeleteDeviceInterfaceRegKey

SetupDiDeleteDevRegKey

SetupDiDestroyClassImageList

SetupDiDestroyDeviceInfoList

SetupDiDestroyDriverInfoList

SetupDiDrawMiniIcon

SetupDiEnumDeviceInfo

SetupDiEnumDeviceInterfaces

SetupDiEnumDriverInfo

SetupDiGetActualSectionToInstall

SetupDiGetClassBitmapIndex

SetupDiGetClassDescription

SetupDiGetClassDescriptionEx

SetupDiGetClassDevs

SetupDiGetClassDevsEx

SetupDiGetClassImageIndex

SetupDiGetClassImageList

SetupDiGetClassImageListEx

SetupDiGetClassInstallParams

SetupDiGetDeviceInfoListClass

SetupDiGetDeviceInfoListDetail

SetupDiGetDeviceInstallParams

SetupDiGetDeviceInstanceId

SetupDiGetDeviceInterfaceAlias

SetupDiGetDeviceInterfaceDetail

SetupDiGetDeviceRegistryProperty

SetupDiGetDriverInfoDetail

SetupDiGetDriverInstallParams

SetupDiGetHwProfileFriendlyName

SetupDiGetHwProfileFriendlyNameEx

SetupDiGetHwProfileList

SetupDiGetHwProfileListEx

SetupDiGetINFClass

SetupDiGetSelectedDevice

SetupDiGetSelectedDriver

SetupDiGetWizardPage

SetupDiInstallClass

SetupDiInstallClassEx

SetupDiInstallDevice

SetupDiInstallDeviceInterfaces

SetupDiInstallDriverFiles

SetupDiLoadClassIcon

SetupDiMoveDuplicateDevice

SetupDiOpenClassRegKey

SetupDiOpenClassRegKeyEx

SetupDiOpenDeviceInfo

SetupDiOpenDeviceInterface

SetupDiOpenDeviceInterfaceRegKey

SetupDiOpenDevRegKey

SetupDiRegisterCoDeviceInstallers

SetupDiRegisterDeviceInfo

SetupDiRemoveDevice

SetupDiRemoveDeviceInterface

SetupDiSelectBestCompatDrv

SetupDiSelectDevice

SetupDiSelectOEMDrv

SetupDiSetClassInstallParams

SetupDiSetDeviceInstallParams

SetupDiSetDeviceRegistryProperty

SetupDiSetDriverInstallParams

SetupDiSetSelectedDevice

SetupDiSetSelectedDriver

SetupDiUnremoveDevice

UpdateDriverForPlugAndPlayDevices

第12章 设备安装结构

SP_ADDPROPERTYPAGE_DATA

SP_CLASSIMAGELIST_DATA

SP_CLASSINSTALL_HEADER

SP_DETECTDEVICE_PARAMS

SP_DEVICE_INTERFACE_DATA

SP_DEVICE_INTERFACE_DETAIL_DATA

SP_DEVINFO_DATA

SP_DEVINFO_LIST_DETAIL_DATA

SP_DEVINSTALL_PARAMS

SP_DRVINFO_DATA

SP_DRVINFO_DETAIL_DATA

SP_DRVINSTALL_PARAMS

SP_ENABLECLASS_PARAMS

SP_INSTALLWIZARD_DATA

SP_MOVEDEV_PARAMS

SP_NEWDEVICEWIZARD_DATA

SP_POWERMESSAGEWAKE_PARAMS

SP_PROPCHANGE_PARAMS

SP_PROPSHEETPAGE_REQUEST

SP_REMOVEDEVICE_PARAMS

SP_SELECTDEVICE_PARAMS

SP_TROUBLESHOOTER_PARAMS

SP_UNREMOVEDEVICE_PARAMS

第13章 设备安装函数代码

DIF_ADDPROPERTYPAGE_ADVANCED

DIF_ALLOW_INSTALL

DIF_DESTROYPRIVATEDATA

DIF_DETECT

DIF_INSTALLDEVICE

DIF_INSTALLDEVICEFILES

DIF_INSTALLINTERFACES

DIF_NEWDEVICEWIZARD_FINIS_HINSTALL

DIF_NEWDEVICEWIZARD_POSTA_NALYZE

DIF_NEWDEVICEWIZARD_PREA_NALYZE

DIF_NEWDEVICEWIZARD_PRESELECT

DIF_NEWDEVICEWIZARD_SELECT

DIF_POWERMESSAGEWAKE

DIF_PROPERTYCHANGE

DIF_REGISTER_COINSTALLERS

DIF_REGISTERDEVICE

DIF_REMOVE

DIF_SELECTBESTCOMPATDRV

DIF_SELECTDEVICE

DIF_TROUBLESHOOTER

DIF_UNREMOVE

保留的DIF代码

DIF_ADDPROPERTYPAGE_BASIC

DIF_ASSIGNRESOURCES

DIF_CALCDISKSPACE

DIF_DETECTCANCEL

DIF_DETECTVERIFY

DIF_ENABLECLASS

DIF_FIRSTTIMESETUP

DIF_FOUNDDEVICE

DIF_INSTALLCLASSDRIVERS

DIF_MOVEDEVICE

废弃的DIF代码

DIF_DESTROYWIZARDDATA

DIF_INSTALLWIZARD

DIF_PROPERTIES

DIF_SELECTCLASSDRIVERS

DIF_VALIDATECLASSDRIVERS

DIF_VALIDATEDRIVER

第14章 PnP配置管理程序函数

CM_Add_Empty_Log_Conf

CM_Add_Empty_Log_Conf_Ex

CM_Add_ID

CM_Add_ID_Ex

CM_Add_Res_Des

CM_Add_Res_Des_Ex

CM_Connect_Machine

CM_Disconnect_Machine

CM_Enumerate_Classes

CM_Enumerate_Classes_Ex

CM_Enumerate_Enumerators

CM_Enumerate_Enumerators_Ex

CM_Free_Log_Conf

CM_Free_Log_Conf_Ex

CM_Free_Log_Conf_Handle

CM_Free_Res_Des

CM_Free_Res_Des_Ex

CM_Free_Res_Des_Handle

CM_Free_Resource_Conflict_Handle

CM_Get_Child

CM_Get_Child_Ex

CM_Get_Depth

CM_Get_Depth_Ex

CM_Get_Device_ID

CM_Get_Device_ID_Ex

CM_Get_Device_ID_List

CM_Get_Device_ID_List_Ex

CM_Get_Device_ID_List_Size

CM_Get_Device_ID_List_Size_Ex

CM_Get_Device_ID_Size

CM_Get_Device_ID_Size_Ex

CM_Get_DevNode_Status

CM_Get_DevNode_Status_Ex

CM_Get_First_Log_Conf

CM_Get_First_Log_Conf_Ex

CM_Get_Log_Conf_Priority

CM_Get_Log_Conf_Priority_Ex

CM_Get_Next_Log_Conf

CM_Get_Next_Log_Conf_Ex

CM_Get_Next_Res_Des

CM_Get_Next_Res_Des_Ex

CM_Get_Parent

CM_Get_Parent_Ex

CM_Get_Res_Des_Data

CM_Get_Res_Des_Data_Ex

CM_Get_Res_Des_Data_Size

CM_Get_Res_Des_Data_Size_Ex

CM_Get_Resource_Conflict_Count

CM_Get_Resource_Conflict_Details

CM_Get_Sibling

CM_Get_Sibling_Ex

CM_Get_Version

CM_Get_Version_Ex

CM_Locate_DevNode

CM_Locate_DevNode_Ex

CM_Modify_Res_Des

CM_Modify_Res_Des_Ex

CM_Query_Resource_Conflict_List

CM_Reenumerate_DevNode

CM_Reenumerate_DevNode_Ex

CM_Request_Device_Eject

CM_Request_Device_Eject_Ex

第15章 PnP配置管理程序结构和类型

资源描述符结构

BUSNUMBER_DES

BUSNUMBER_RANGE

BUSNUMBER_RESOURCE

CS_DES

CS_RESOURCE

DEVPRIVATE_DES

DEVPRIVATE_RANGE

DEVPRIVATE_RESOURCE

DMA_DES

DMA_RANGE

DMA_RESOURCE

IO_DES

IO_RANGE

IO_RESOURCE

IRQ_DES

IRQ_RANGE

IRQ_RESOURCE

MEM_DES

MEM_RANGE

MEM_RESOURCE

MFCARD_DES

MFCARD_RESOURCE

PCCARD_DES

PCCARD_RESOURCE

其他的结构

CONFLICT_DETAILS

PnP 配置管理程序类型

PNP_VETO_TYPE

第16章 设备安装类

第17章 txtsetup.oem文件格式

txtsetup.oem文件中的Disks节

txtsetup.oem文件中的Defaults节

txtsetup.oem 文件中的HwComponent节

txtsetup.oem 文件中的Files.HwComponent.ID节

txtsetup.oem 文件中的Config.DriverKey节

txtsetup.oem 文件中的HardwareIds.scsi.Service节

第二篇 内核模式驱动程序开发参考

第一部分 内核模式支持例程

第1章 内核模式支持例程概述

初始化和卸载

IRP

同步

内存

DMA

PIO

驱动程序管理队列

驱动程序系统线程

数据转换

访问驱动程序管理的对象

错误处理

第2章 可执行支持例程

ExAcquireFastMutex

ExAcquireFastMutexUnsafe

ExAcquireResourceExclusive

ExAcquireResourceExclusiveLite

ExAcquireResourceShared

ExAcquireResourceSharedLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExAllocateFromNPagedLookasideList

ExAllocateFromPagedLookasideList

ExAllocateFromZone

ExAllocatePool

ExAllocatePoolWithQuota

ExAllocatePoolWithQuotaTag

ExAllocatePoolWithTag

ExAllocatePoolWithTagPriority

ExConvertExclusiveToShared

ExConvertExclusiveToSharedLite

ExCreateCallback

ExDeleteNPagedLookasideList

ExDeletePagedLookasideList

ExDeleteResource

ExDeleteResourceLite

ExExtendZone

ExFreePool

ExFreeToNPagedLookasideList

ExFreeToPagedLookasideList

ExFreeToZone

ExGetCurrentResourceThread

ExGetExclusiveWaiterCount

ExGetPreviousMode

ExGetSharedWaiterCount

ExInitializeFastMutex

ExInitializeNPagedLookasideList

ExInitializePagedLookasideList

ExInitializeResource

ExInitializeResourceLite

ExInitializeSListHead

ExInitializeWorkItem

ExInitializeZone

ExInterlockedAddLargeInteger

ExInterlockedAddLargeStatistic

ExInterlockedAddUlong

ExInterlockedAllocateFromZone

ExInterlockedCompareExchange64

ExInterlockedDecrementLong

ExInterlockedExchangeAddLargeInteger

ExInterlockedExchangeUlong

ExInterlockedExtendZone

ExInterlockedFlushSList

ExInterlockedFreeToZone

ExInterlockedIncrementLong

ExInterlockedInsertHeadList

ExInterlockedInsertTailList

ExInterlockedPopEntryList

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExIsFullZone

ExIsObjectInFirstZoneSegment

ExIsProcessorFeaturePresent

ExIsResourceAcquiredExclusive

ExIsResourceAcquiredExclusiveLite

ExIsResourceAcquiredSharedLite

ExLocalTimeToSystemTime

ExNotifyCallback

ExQueryDepthSList

ExQueueWorkItem

ExRaiseAccessViolation

ExRaiseDatatypeMisalignment

ExRaiseStatus

ExRegisterCallback

ExReinitializeResourceLite

ExReleaseFastMutex

ExReleaseFastMutexUnsafe

ExReleaseResource

ExReleaseResourceForThread

ExReleaseResourceForThreadLite

ExReleaseResourceLite

ExSetResourceOwnerPointer

ExSetTimerResolution

ExSystemTimeToLocalTime

ExTryToAcquireFastMutex

ExTryToAcquireResourceExclusiveLite

ExUnregisterCallback

ExUnidCreate

InterlockedCompareExchange

InterlockedCompareExchangePointer

InterlockedDecrement

InterlockedExchange

InterlockedExchangeAdd

InterlockedExchangePointer

InterlockedIncrement

PAGED_CODE

ProbeForRead

ProbeForWrite

第3章 硬件抽象层例程

AllocateAdapterChannel

AllocateCommonBuffer

FlushAdapterBuffers

FreeAdapterChannel

FreeCommonBuffer

FreeMapRegisters

GetDmaAlignment

GetScatterGatherList

HalAllocateCommonBuffer

HalAssignSlotResources

HalExamineMBR

HalFreeCommonBuffer

HalGetAdapter

HalGetBusData

HalGetBusDataByOffset

HalGetDmaAlignmentRequirement

HalGetInterruptVector

HalReadDmaCounter

HalSetBusData

HalSetBusDataByOffset

HalTranslateBusAddress

MapTransfer

PutDmaAdapter

PutScatterGatherList

ReadDmaCounter

READ_PORT_BUFFER_UCHAR

READ_PORT_BUFFER_ULONG

READ_PORT_BUFFER_USHORT

READ_PORT_UCHAR

READ_PORT_ULONG

READ_PORT_USHORT

READ_REGISTER_BUFFER_UCHAR

READ_REGISTER_BUFFER_ULONG

READ_REGISTER_BUFFER_USHORT

READ_REGISTER_UCHAR

READ_REGISTER_ULONG

READ_REGISTER_USHORT

WRITE_PORT_BUFFER_UCHAR

WRITE_PORT_BUFFER_ULONG

WRITE_PORT_BUFFER_USHORT

WRITE_PORT_UCHAR

WRITE_PORT_ULONG

WRITE_PORT_USHORT

WRITE_REGISTER_BUFFER_UCHAR

WRITE_REGISTER_BUFFER_ULONG

WRITE_REGISTER_BUFFER_USHORT

WRITE_REGISTER_UCHAR

WRITE_REGISTER_ULONG

WRITE_REGISTER_USHORT

第4章 I/O 管理程序例程

IoAcquireCancelSpinLock

IoAcquireRemoveLock

IoAcquireRemoveLockEx

IoAdjustPagingPathCount

IoAllocateAdapterChannel

IoAssignArcName

IoAssignResources

IoAttachDevice

IoAttachDeviceByPointer

IoAttachDeviceToDeviceStack

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildPartialMdl

IoBuildSynchronousFsdRequest

IoCallDriver

IoCancelIrp

IoCheckShareAccess

IoCompleteRequest

IoConnectInterrupt

IoCopyCurrentIrpStackLocationToNext

IoCreateController

IoCreateDevice

IoCreateFile

IoCreateNotificationEvent

IoCreateSymbolicLink

IoCreateSynchronizationEvent

IoCreateUnprotectedSymbolicLink

IoDeassignArcName

IoDeleteController

IoDeleteDevice

IoDeleteSymbolicLink

IoFreeAdapterChannel

IoFreeController

IoFreeIrp

IoFreeMapRegisters

IoFreeMdl

IoFreeWorkItem

IoGetAttachedDeviceReference

IoGetBootDiskInformation

IoGetConfigurationInformation

IoGetCurrentIrpStackLocation

IoGetCurrentProcess

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoGetDeviceObjectPointer

IoGetDeviceProperty

IoGetDeviceToVerify

IoGetDmaAdapter

IoGetDriverObjectExtension

IoGetFileObjectGenericMapping

IoGetFunctionCodeFromCtlCode

IoGetInitialStack

IoGetNextIrpStackLocation

IoGetRelatedDeviceObject

IoGetRemainingStackSize

IoGetStackLimits

IoInitializeDpcRequest

IoInitializeIrp

IoInitializeRemoveLock

IoInitializeRemoveLockEx

IoInitializeTimer

IoInvalidateDeviceRelations

IoInvalidateDeviceState

IoIsErrorUserInduced

IoIsWdmVersionAvailable

IoMakeAssociatedIrp

IoMapTransfer

IoMarkIrpPending

IoOpenDeviceInterfaceRegistryKey

IoOpenDeviceRegistryKey

IoQueryDeviceDescription

IoQueueWorkItem

IoRaiseHardError

IoRaiseInformationalHardError

IoReadPartitionTable

IoRegisterDeviceInterface

IoRegisterDriverReinitialization

IoRegisterPlugPlayNotification

IoRegisterShutdownNotification

IoReleaseCancelSpinLock

IoReleaseRemoveLock

IoReleaseRemoveLockEx

IoReleaseRemoveLockAndWait

IoReleaseRemoveLockAndWaitEx

IoRemoveShareAccess

IoReportDetectedDevice

IoReportResourceForDetection

IoReportResourceUsage

IoReportTargetDeviceChange

IoReportTargetDeviceChangeAsynchronous

IoRequestDeviceEject

IoRequestDpc

IoReuseIrp

IoSetCancelRoutine

IoSetCompletionRoutine

IoSetDeviceInterfaceState

IoSetHardErrorOrVerifyDevice

IoSetNextIrpStackLocation

IoSetPartitionInformation

IoSetShareAccess

IoSetThreadHardErrorMode

IoSizeOfIrp

IoSkipCurrentIrpStackLocation

IoStartNextPacket

IoStartNextPacketByKey

IoStartPacket

IoStartTimer

IoStopTimer

IoUnregisterPlugPlayNotification

IoUnregisterShutdownNotification

IoUpdateShareAccess

IoWMIAllocateInstanceIds

IoWMIDeviceObjectToProviderId

IoWMIRegistrationControl

IoWMISuggestInstanceName

IoWMIWriteEvent

IoWriteErrorLogEntry

IoWritePartitionTable

第5章 内核例程

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeBugCheck

KeBugCheckEx

KeCancelTimer

KeClearEvent

KeDelayExecutionThread

KeDeregisterBugCheckCallback

KeEnterCriticalRegion

KeFlushIoBuffers

KeGetCurrentIrql

KeGetCurrentProcessorNumber

KeGetCurrentThread

KeGetDcacheFillSize

KeInitializeCallbackRecord

KeInitializeDeviceQueue

KeInitializeDpc

KeInitializeEvent

KeInitializeMutex

KeInitializeSemaphore

KeInitializeSpinLock

KeInitializeTimer

KeInitializeTimerEx

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeInsertQueueDpc

KeLeaveCriticalRegion

KeLowerIrql

KePulseEvent

KeQueryInterruptTime

KeQueryPerformanceCounter

KeQueryPriorityThread

KeQuerySystemTime

KeQueryTickCount

KeQueryTimeIncrement

KeRaiseIrql

KeRaiseIrqlToDpcLevel

KeReadStateEvent

KeReadStateMutex

KeReadStateSemaphore

KeReadStateTimer

KeRegisterBugCheckCallback

KeReleaseMutex

KeReleaseSemaphore

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeRemoveByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue

KeRemoveQueueDpc

KeResetEvent

KeRestoreFloatingPointState

KeSaveFloatingPointState

KeSetBasePriorityThread

KeSetEvent

KeSetImportanceDpc

KeSetTargetProcessorDpc

KeSetPriorityThread

KeSetTimer

KeSetTimerEx

KeStallExecutionProcessor

KeSynchronizeExecution

KeWaitForMultipleObjects

KeWaitForMutexObject

KeWaitForSingleObject

第6章 内存管理程序例程

ADDRESS_AND_SIZE_TO_SPAN_PAGES

ARGUMENT_PRESENT

BYTE_OFFSET

BYTES_TO_PAGES

COMPUTE_PAGES_SPANNED

CONTAINING_RECORD

FIELD_OFFSET

MmAllocateContiguousMemory

MmAllocateContiguousMemorySpecifyCache

MmAllocateNonCachedMemory

MmAllocatePagesForMdl

MmBuildMdlForNonPagedPool

MmCreateMdl

MmFreeContiguousMemory

MmFreeContiguousMemorySpecityCache

MmFreeNonCachedMemory

MmFreePagesFromMdl

MmGetMdlByteCount

MmGetMdlByteOffset

MmGetMdlPfnArray

MmGetMdlVirtualAddress

MmGetPhysicalAddress

MmGetSystemAddressForMdl

MmGetSystemAddressForMdlSafe

MmInitializeMdl

MmIsAddressValid

MmIsNonPagedSystemAddressValid

MmIsThisAnNtAsSystem

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmMapIoSpace

MmMapLockedPages

MmMapLockedPagesSpecifyCache

MmPageEntireDriver

MmResetDriverPaging

MmPrepareMdlForReuse

MmProbeAndLockPages

MmQuerySystemSize

MmSizeOfMdl

MmUnlockPages

MmUnlockPagableImageSection

MmUnmapIoSpace

MmUnmapLockedPages

PAGE_ALIGN

ROUND_TO_PAGES

第7章 对象管理程序例程

ObDereferenceObject

ObGetObjectSecurity

ObReferenceObject

ObReferenceObjectByHandle

ObReferenceObjectByPointer

ObReleaseObjectSecurity

第8章 进程结构例程

PsCreateSystemThread

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsGetVersion

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine

PsTerminateSystemThread

第9章 运行时库例程

InitializeListHead

InitializeObjectAttributes

InsertHeadList

InsertTailList

IsListEmpty

PopEntryList

PushEntryList

RemoveEntryList

RemoveHeadList

RemoveTailList

RtlAnsiStringToUnicodeSize

RtlAnsiStringToUnicodeString

RtlAppendUnicodeStringToString

RtlAppendUnicodeToString

RtlAreBitsClear

RtlAreBitsSet

RtlCharToInteger

RtlCheckBit

RtlCheckRegistryKey

RtlClearAllBits

RtlClearBits

RtlCompareMemory

RtlCompareString

RtlCompareUnicodeString

RtlConvertLongToLargeInteger

RtlConvertLongToLuid

RtlConvertUlongToLargeInteger

RtlConvertUlongToLuid

RtlCopyBytes

RtlCopyMemory

RtlCopyMemory32

RtlCopyString

RtlCopyUnicodeString

RtlCreateRegistryKey

RtlCreateSecurityDescriptor

RtlDeleteRegistryValue

RtlEnlargedIntegerMultiply

RtlEnlargedUnsignedDivide

RtlEnlargedUnsignedMultiply

RtlEqualLuid

RtlEqualMemory

RtlEqualString

RtlEqualUnicodeString

RtlExtendedIntegerMultiply

RtlExtendedLargeIntegerDivide

RtlExtendedMagicDivide

RtlFillBytes

RtlFillMemory

RtlFindClearBits

RtlFindClearBitsAndSet

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLeastSignificantBit

RtlFindMostSignificantBit

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlFindSetBits

RtlFindSetBitsAndClear

RtlFreeAnsiString

RtlFreeUnicodeString

RtlGetVersion

RtlGUIDFromString

RtlInitAnsiString

RtlInitializeBitMap

RtlInitString

RtlInitUnicodeString

RtlInt64ToUnicodeString

RtlIntegerToUnicodeString

RtlIntPtrToUnicodeString

RtlLargeIntegerAdd

RtlLargeIntegerAnd

RtlLargeIntegerArithmeticShift

RtlLargeIntegerDivide

RtlLargeIntegerEqualTo

RtlLargeIntegerEqualToZero

RtlLargeIntegerGreaterThan

RtlLargeIntegerGreaterThanOrEqualTo

RtlLargeIntegerGreaterOrEqualToZero

RtlLargeIntegerGreaterThanZero

RtlLargeIntegerLessThan

RtlLargeIntegerLessThanOrEqualTo

RtlLargeIntegerLessOrEqualToZero

RtlLargeIntegerLessThanZero

RtlLargeIntegerNegate

RtlLargeIntegerNotEqualTo

RtlLargeIntegerNotEqualToZero

RtlLargeIntegerShiftLeft

RtlLargeIntegerShiftRight

RtlLargeIntegerSubtract

RtlLengthSecurityDescriptor

RtlMoveMemory

RtlNumberOfClearBits

RtlNumberOfSetBits

RtlPrefixUnicodeString

RtlQueryRegistryValues

RtlRetrieveUlong

RtlRetrieveUshort

RtlSetAllBits

RtlSetBits

RtlSetDaclSecurityDescriptor

RtlStoreUlong

RtlStoreUlonglong

RtlStoreUlongPtr

RtlStoreUshort

RtlStringFromGUID

RtlTimeFieldsToTime

RtlTimeToTimeFields

RtlUlongByteSwap

RtlUlonglongByteSwap

RtlUnicodeStringToAnsiSize

RtlUnicodeStringToAnsiString

RtlUnicodeStringToInteger

RtlUpcaseUnicodeChar

RtlUpcaseUnicodeString

RtlUpperChar

RtlUpperString

RtlUshortByteSwap

RtlValidSecurityDescriptor

RtlVerifyVersionInfo

RtlVolumeDeviceToDosName

RtlWriteRegistryValue

RtlxUnicodeStringToAnsiSize

RtlZeroBytes

RtlZeroMemory

第10章 安全引用监视器例程

SeAccessCheck

SeAssignSecurity

SeAssignSecurityEx

SeDeassignSecurity

SeSinglePrivilegeCheck

SeValidSecurityDescriptor

第11章 ZwXxx例程

ZwClose

ZwCreateDirectoryObject

ZwCreateFile

ZwCreateKey

ZwDeleteKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwFlushKey

ZwMakeTemporaryObject

ZwMapViewOfSection

ZwOpenFile

ZwOpenKey

ZwOpenSection

ZwOpenSymbolicLinkObject

ZwQueryInformationFile

ZwQueryKey

ZwQuerySymbolicLinkObject

ZwQueryValueKey

ZwReadFile

ZwSetInformationFile

ZwSetInformationThread

ZwSetValueKey

ZwUnmapViewOfSection

ZwWriteFile

第12章 系统结构

ANSI_STRING

CM_EISA_FUNCTION_INFORMATION

CM_EISA_SLOT_INFORMATION

CM_FLOPPY_DEVICE_DATA

CM_FULL_RESOURCE_DESCRIPTOR

CM_INT13_DRIVE_PARAMETER

CM_KEYBOARD_DEVICE_DATA

CM_MCA_POS_DATA

CM_PARTIAL_RESOURCE_DESCRIPTOR

CM_PARTIAL_RESOURCE_LIST

CM_RESOURCE_LIST

CM_SCSI_DEVICE_DATA

CM_SERIAL_DEVICE_DATA

CONTROLLER_OBJECT

DEVICE_DESCRIPTION

DEVICE_OBJECT

DMA_ADAPTER

DMA_OPERATIONS

DRIVER_OBJECT

FILE_ALIGNMENT_INFORMATION

FILE_BASIC_INFORMATION

FILE_DISPOSITION_INFORMATION

FILE_END_OF_FILE_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FULL_EA_INFORMATION

FILE_NAME_INFORMATION

FILE_OBJECT

FILE_POSITION_INFORMATION

FILE_STANDARD_INFORMATION

IO_RESOURCE_DESCRIPTOR

IO_RESOURCE_LIST

IO_RESOURCE_REQUIREMENTS_LIST

IO_STACK_LOCATION

IO_STATUS_BLOCK

IRP

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

OEM_STRING

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

POOL_TYPE

RTL_OSVERSIONINFOW

RTL_OSVERSIONINFOEXW

SCATTER_GATHER_LIST

UNICODE_STRING

第13章 IRP函数代码和IOCTL

根据设备对象类型决定需要的I/O支持

公共I/O请求的输入和输出参数

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_FLUSH_BUFFERS

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_PNP

IRP_MJ_POWER

IRP_MJ_READ

IRP_MJ_SHUTDOWN

IRP_MJ_WRITE

定义I/O控制代码

设备类型专有的I/O请求

第二部分 串行和并行接口驱动程序

第14章 串行接口驱动程序参考

Serial主要I/O请求

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_FLUSH_BUFFERS

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_PNP

IRP_MJ_POWER

IRP_MJ_QUERY_INFORMATION

IRP_MJ_READ

IRP_MJ_SET_INFORMATION

IRP_MJ_SYSTEM_CONTROL

IRP_MJ_WRITE

Serial设备控制请求

IOCTL_SERIAL_CLEAR_STATS

IOCTL_SERIAL_CLR_DTR

IOCTL_SERIAL_CLR_RTS

IOCTL_SERIAL_CONFIG_SIZE

IOCTL_SERIAL_GET_BAUD_RATE

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_COMMSTATUS

IOCTL_SERIAL_GET_DTRRTS

IOCTL_SERIAL_GET_HANDFLOW

IOCTL_SERIAL_GET_LINE_CONTROL

IOCTL_SERIAL_GET_MODEM_CONTROL

IOCTL_SERIAL_GET_MODEMSTATUS

IOCTL_SERIAL_GET_PROPERTIES

IOCTL_SERIAL_GET_STATS

IOCTL_SERIAL_GET_TIMEOUTS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_IMMEDIATE_CHAR

IOCTL_SERIAL_LSRMST_INSERT

IOCTL_SERIAL_PURGE

IOCTL_SERIAL_RESET_DEVICE

IOCTL_SERIAL_SET_BAUD_RATE

IOCTL_SERIAL_SET_BREAK_OFF

IOCTL_SERIAL_SET_BREAK_ON

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_SET_DTR

IOCTL_SERIAL_SET_FIFO_CONTROL

IOCTL_SERIAL_SET_HANDFLOW

IOCTL_SERIAL_SET_LINE_CONTROL

IOCTL_SERIAL_SET_MODEM_CONTROL

IOCTL_SERIAL_SET_QUEUE_SIZE

IOCTL_SERIAL_SET_RTS

IOCTL_SERIAL_SET_TIMEOUTS

IOCTL_SERIAL_SET_WAIT_MASK

IOCTL_SERIAL_SET_XOFF

IOCTL_SERIAL_SET_XON

IOCTL_SERIAL_WAIT_ON_MASK

IOCTL_SERIAL_XOFF_COUNTER

Serial内部设备控制请求

IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS

IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE

IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE

IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS

第15章 Serenum驱动程序参考

Serenum设备控制请求

IOCTL_SERENUM_PORT_DESC

IOCTL_SERENUM_GET_PORT_NAME

Serenum内部设备控制请求

IOCTL_INTERNAL_SERENUM_REMOVE_SELF

第16章 Parport驱动程序参考

Parport主要I/O请求

IRP_MJ_CREATE

IRP_MJ_INTERNAL_DEVICE_CONTROL

Parport内部设备控制请求

IOCTL_INTERNAL_DESELECT_DEVICE

IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_INIT_1284_3_BUS

IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE

IOCTL_INTERNAL_PARALLEL_PORT_FREE

IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE

IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_Xxx

Parport数据类型

MORE_PARALLEL_PORT_INFOR-MATION

PARALLEL_1284_COMMAND

PARALLEL_CHIP_MODE

PARALLEL_PNP_INFORMATION

PARALLEL_PORT_INFORMATION

PARALLEL_INTERRUPT_INFORMATION

PARALLEL_INTERRUPT_SERVICE_ROUTINE

Parport回调例程

ClearChipMode

DeselectDevice

FreePort

FreePortFromInterruptLevel

QueryNumWaiters

TryAllocatePort

TryAllocatePortAtInterruptLevel

TrySelectDevice

TrySetChipMode

第17章 Parclass驱动程序参考

Parclass主要I/O请求

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_QUERY_INFORMATION

IRP_MJ_READ

IRP_MJ_WRITE

Parclass设备控制请求

IOCTL_IEEE1284_GET_MODE

IOCTL_IEEE1284_NEGOTIATE

IOCTL_PAR_GET_DEFAULT_MODES

IOCTL_PAR_GET_DEVICE_CAPS

IOCTL_PAR_IS_PORT_FREE

IOCTL_PAR_QUERY_DEVICE_ID

IOCTL_PAR_QUERY_DEVICE_ID_SIZE

IOCTL_PAR_QUERY_INFORMATION

IOCTL_PAR_QUERY_RAW_DEVICE_ID

IOCTL_PAR_SET_INFORMATION

IOCTL_PAR_SET_READ_ADDRESS

IOCTL_PAR_SET_WRITE_ADDRESS

IOCTL_SERIAL_GET_TIMEOUTS

IOCTL_SERIAL_SET_TIMEOUTS

Parclass内部设备控制请求

IOCTL_INTERNAL_DISCONNECT_IDLE

IOCTL_INTERNAL_LOCK_PORT

IOCTL_INTERNAL_PARCLASS_CONNECT

IOCTL_INTERNAL_PARCLASS_DISCONNECT

IOCTL_INTERNAL_PARDOT3_CONNECT

IOCTL_INTERNAL_PARDOT3_DISCONNECT

IOCTL_INTERNAL_UNLOCK_PORT

Parclass数据类型

PAR_QUERY_INFORMATION

PAR_SET_INFORMATION

PARCLASS_INFORMATION

PARCLASS_NEGOTIATION_MASK

Parclass回调例程

DetermineIeeeModes

IeeeFwdToRevMode

IeeeRevToFwdMode

NegotiateIeeeMode

ParallelRead

ParallelWrite

TerminateIeeeMode

第三部分 输入设备的驱动程序

第18章 HID 输入/输出请求

HID类驱动程序支持的I/O请求

IOCTL_HID_GET_POLL_FREQUENCY_MSEC

IOCTL_HID_SET_POLL_FREQUENCY_MSEC

IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_HID_GET_COLLECTION_INFORMATION

IOCTL_HID_GET_COLLECTION_DESCRIPTOR

IOCTL_HID_FLUSH_QUEUE

IOCTL_HID_GET_FEATURE

IOCTL_HID_SET_FEATURE

IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_HID_GET_HARDWARE_ID

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING

IOCTL_HID_GET_INDEXED_STRING

HID微驱动程序支持的I/O请求

IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_HID_ACTIVATE_DEVICE

IOCTL_HID_DEACTIVATE_DEVICE

IOCTL_HID_GET_DEVICE_ATTRIBUTES

IOCTL_HID_GET_DEVICE_DESCRIPTOR

IOCTL_HID_GET_FEATURE

IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_REPORT_DESCRIPTOR

IOCTL_HID_GET_STRING

IOCTL_HID_READ_REPORT

IOCTL_HID_SET_FEATURE

IOCTL_HID_WRITE_REPORT

第19章 客户HID支持例程

HidD_FlushQueue

HidD_FreePreparsedData

HidD_GetAttributes

HidD_GetConfiguration

HidD_GetFeature

HidD_GetHidGuid

HidD_GetIndexedString

HidD_GetManufacturerString

HidD_GetNumInputBuffers

HidD_GetPhysicalDescriptor

HidD_GetPreparsedData

HidD_GetProductString

HidD_GetSerialNumberString

HidD_SetConfiguration

HidD_SetFeature

HidD_SetNumInputBuffers

HidP_GetButtonCaps

HidP_GetButtons

HidP_GetButtonsEx

HidP_GetCaps

HidP_GetLinkCollectionNodes

HidP_GetScaledUsageValue

HidP_GetSpecificButtonCaps

HidP_GetSpecificValueCaps

HidP_GetUsageValue

HidP_GetUsageValueArray

HidP_GetValueCaps

HidP_MaxUsageListLength

HidP_SetButtons

HidP_SetScaledUsageValue

HidP_SetUsageValue

HidP_SetUsageValueArray

HidP_TranslateUsagesToI8042ScanCodes

HidP_UsageListDifference

第20章 客户HID结构

HID_COLLECTION_INFORMATION

HIDP_COLLECTION_DESC

HIDD_ATTRIBUTES

HIDD_CONFIGURATION

HIDP_BUTTON_CAPS

HIDP_CAPS

HIDP_LINK_COLLECTION_NODE

HIDP_VALUE_CAPS

USAGE_AND_PAGE

第21章 微驱动程序HID支持例程

HidRegisterMinidriver

第22章 微驱动程序HID结构

HID_DEVICE_ATTRIBUTES

HID_DEVICE_EXTENSION

HID_MINIDRIVER_REGISTRATION

HID_XFER_PACKET

第23章 Kbdclass驱动程序参考

Kbdclass主要I/O请求

Kbdclass设备控制请求

Kbdclass类服务回调例程

KeyboardClassServiceCallback

第24章 Mouclass驱动程序参考

Mouclass主要I/O请求

IOCTL-Xxx设备控制请求

Mouclass类服务回调例程

第25章 I8042prt驱动程序参考

I8042prt键盘主要I/O请求

I8042prt键盘内部设备控制请求

I8042prt鼠标主要I/O请求

I8042prt鼠标内部设备控制请求

I8042prt键盘回调例程

I8042prt鼠标回调例程

第26章 Kbfiltr驱动程序参考

Kbfiltr内部设备控制请求

Kbfiltr回调例程

第27章 Moufiltr驱动程序参考

Moufiltr内部设备控制请求

Moufiltr回调例程

第四部分 USB驱动程序

第28章 USB客户驱动程序I/O请求

IOCTL_INTERNAL_USB_SUBMIT_URB

IOCTL_INTERNAL_USB_RESET_PORT

IOCTL_INTERNAL_USB_GET_PORT_STATUS

IOCTL_INTERNAL_USB_ENABLE_PORT

IOCTL_INTERNAL_USB_GET_HUB_COUNT

IOCTL_INTERNAL_USB_CYCLE_PORT

IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO

IOCTL_INTERNAL_USB_GET_HUB_NAME

IOCTL_INTERNAL_USB_GET_BUS_INFO

IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME

第29章 USB客户支持例程

GET_ISO_URB_SIZE

GET_SELECT_CONFIGURATION_REQUEST_SIZE

GET_SELECT_INTERFACE_REQUEST_SIZE

GET_USBD_INTERFACE_SIZE

UsbBuildFeatureRequest

UsbBuildGetDescriptorRequest

UsbBuildGetStatusRequest

UsbBuildInterruptOrBulkTransferRequest

UsbBuildSelectConfigurationRequest

UsbBuildSelectInterfaceRequest

UsbBuildVendorRequest

USBD_CreateConfigurationRequest

USBD_CreateConfigurationRequestEx

USBD_GetInterfaceLength

USBD_GetUSBDIVersion

USBD_ParseConfigurationDescriptor

USBD_ParseConfigurationDescriptorEx

USBD_ParseDescriptors

USBD_RegisterHcFilter

第30章 USB结构

URB

_URB_BULK_OR_INTERRUPT_TRANSFER

_URB_CONTROL_DESCRIPTOR_REQUEST

_URB_CONTROL_FEATURE_REQUEST

_URB_CONTROL_GET_CONFIGURATIONREQUEST

_URB_CONTROL_GET_INTERFACE_REQUEST

_URB_CONTROL_GET_STATUS_REQUEST

_URB_CONTROL_TRANSFER

_URB_CONTROL_VENDOR_OR_CLASS_REQUEST

_URB_FRAME_LENGTH_CONTROL

_URB_GET_CURRENT_FRAME_NUMBER

_URB_GET_FRAME_LENGTH

_URB_HEADER

_URB_ISOCH_TRANSFER

_URB_PIPE_REQUEST

_URB_SELECT_CONFIGURATION

_URB_SELECT_INTERFACE

_URB_SET_FRAME_LENGTH

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR

USB_ENDPOINT_DESCRIPTOR

USB_INTERFACE_DESCRIPTOR

USB_HUB_NAME

USB_ROOT_HUB_NAME

USB_STRING_DESCRIPTOR

USBD_INTERFACE_INFORMATION

USBD_INTERFACE_LIST_ENTRY

USBD_PIPE_INFORMATION

USBD_ISO_PACKET_DESCRIPTOR

第五部分 IEEE 1394驱动程序

第31章 IEEE 1394总线I/O请求

IOCTL_CLASS_1394

REQUEST_ALLOCATE_ADDRESS_RANGE

REQUEST_ASYNC_LOCK

REQUEST_ASYNC_READ

REQUEST_ASYNC_STREAM

REQUEST_ASYNC_WRITE

REQUEST_BUS_RESET

REQUEST_BUS_RESET_NOTIFICATION

REQUEST_CONTROL

REQUEST_FREE_ADDRESS_RANGE

REQUEST_GET_ADDR_FROM_DEVICE_OBJECT

REQUEST_GET_CONFIGURATION_INFO

REQUEST_GET_GENERATION_COUNT

REQUEST_GET_LOCAL_HOST_INFO

REQUEST_GET_SPEED_BETWEEN_DEVICES

REQUEST_GET_SPEED_TOPOLOGY_MAPS

REQUEST_ISOCH_ALLOCATE_BANDWIDTH

REQUEST_ISOCH_ALLOCATE_CHANNEL

REQUEST_ISOCH_ALLOCATE_RESOURCES

REQUEST_ISOCH_ATTACH_BUFFERS

REQUEST_ISOCH_DETACH_BUFFERS

REQUEST_ISOCH_FREE_BANDWIDTH

REQUEST_ISOCH_FREE_CHANNEL

REQUEST_ISOCH_FREE_RESOURCES

REQUEST_ISOCH_LISTEN

REQUEST_ISOCH_QUERY_CYCLE_TIME

REQUEST_ISOCH_QUERY_RESOURCES

REQUEST_ISOCH_SET_CHANNEL_BANDWIDTH

REQUEST_ISOCH_STOP

REQUEST_ISOCH_TALK

REQUEST_SEND_PHY_CONFIG_PACKET

REQUEST_SET_DEVICE_XMIT_PROPERTIES

REQUEST_SET_LOCAL_HOST_PROPERTIES

第32章 IEEE 1394结构

ADDRESS_FIFO

ADDRESS_OFFSET

ADDRESS_RANGE

CONFIG_ROM

CYCLE_TIME

GET_LOCAL_HOST_INFO1

GET_LOCAL_HOST_INFO2

GET_LOCAL_HOST_INFO3

GET_LOCAL_HOST_INFO4

GET_LOCAL_HOST_INFO5

GET_LOCAL_HOST_INFO6

IO_ADDRESS

IRB

ISOCH_DESCRIPTOR

NODE_ADDRESS

NOTIFICATION_INFO

PHY_CONFIGURATION_PACKET

SELF_ID

SELF_ID_MORE

SPEED_MAP

TEXTUAL_LEAF

TOPOLOGY_MAP

第六部分 PCMCIA驱动程序

第33章 PCMCIA_INTERFACE_STANDARD接口内存卡例程

PCMCIA_IS_WRITE_PROTECTED

PCMCIA_MODIFY_MEMORY_WINDOW

PCMCIA_SET_VPP

第七部分 SMB客户驱动程序

第34章 SMB IOCTL

SMB_BUS_REQUEST

SMB_DEREGISTER_ALARM_NOTIFY

SMB_REGISTER_ALARM_NOTIFY

第35章 SMB结构

SMB_CLASS

SMB_REGISTER_ALARM

SMB_REQUEST

第八部分 WMI内核模式数据提供者

第36章 WMI IRP

IRP_MN_CHANGE_SINGLE_INSTANCE

IRP_MN_CHANGE_SINGLE_ITEM

IRP_MN_DISABLE_COLLECTION

IRP_MN_DISABLE_EVENTS

IRP_MN_ENABLE_COLLECTION

IRP_MN_ENABLE_EVENTS

IRP_MN_EXECUTE_METHOD

IRP_MN_QUERY_ALL_DATA

IRP_MN_QUERY_SINGLE_INSTANCE

IRP_MN_REGINFO

第37章 WMI库支持例程

WmiCompleteRequest

WmiFireEvent

WmiSystemControl

第38章 WMI库回调例程

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

第39章 WMI结构

WMILIB_CONTEXT

WMIGUIDREGINFO

WMIREGGUID

WMIREGINFO

WNODE_ALL_DATA

WNODE_EVENT_ITEM

WNODE_EVENT_REFERENCE

WNODE_HEADER

WNODE_METHOD_ITEM

WNODE_SINGLE_INSTANCE

WNODE_SINGLE_ITEM

WNODE_TOO_SMALL

第40章 WMI事件跟踪结构

EVENT_TRACE_HEADER