⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winddk.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 5 页
字号:
#define IRP_MN_DISABLE_EVENTS             0x05#define IRP_MN_ENABLE_COLLECTION          0x06#define IRP_MN_DISABLE_COLLECTION         0x07#define IRP_MN_REGINFO                    0x08#define IRP_MN_EXECUTE_METHOD             0x09#define IRP_MN_REGINFO_EX                 0x0btypedef enum _IO_ALLOCATION_ACTION {  KeepObject = 1,  DeallocateObject,  DeallocateObjectKeepRegisters} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;typedef IO_ALLOCATION_ACTION(DDKAPI *PDRIVER_CONTROL)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ PVOID  Context);typedef VOID(DDKAPI *PDRIVER_LIST_CONTROL)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp,  /*IN*/ struct _SCATTER_GATHER_LIST  *ScatterGather,  /*IN*/ PVOID  Context);typedef NTSTATUS(DDKAPI *PDRIVER_ADD_DEVICE)(  /*IN*/ struct _DRIVER_OBJECT  *DriverObject,  /*IN*/ struct _DEVICE_OBJECT  *PhysicalDeviceObject);typedef NTSTATUS(DDKAPI *PIO_COMPLETION_ROUTINE)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp,  /*IN*/ PVOID  Context);typedef VOID(DDKAPI *PDRIVER_CANCEL)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp);typedef VOID(DDKAPI *PKDEFERRED_ROUTINE)(  /*IN*/ struct _KDPC  *Dpc,  /*IN*/ PVOID  DeferredContext,  /*IN*/ PVOID  SystemArgument1,  /*IN*/ PVOID  SystemArgument2);typedef NTSTATUS(DDKAPI *PDRIVER_DISPATCH)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp);typedef VOID(DDKAPI *PIO_DPC_ROUTINE)(  /*IN*/ struct _KDPC  *Dpc,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp,  /*IN*/ PVOID  Context);typedef NTSTATUS(DDKAPI *PMM_DLL_INITIALIZE)(  /*IN*/ PUNICODE_STRING  RegistryPath);typedef NTSTATUS(DDKAPI *PMM_DLL_UNLOAD)(  VOID);typedef NTSTATUS(DDKAPI *PDRIVER_ENTRY)(   /*IN*/ struct _DRIVER_OBJECT  *DriverObject,   /*IN*/ PUNICODE_STRING  RegistryPath); typedef NTSTATUS(DDKAPI *PDRIVER_INITIALIZE)(  /*IN*/ struct _DRIVER_OBJECT  *DriverObject,   /*IN*/ PUNICODE_STRING  RegistryPath);typedef BOOLEAN(DDKAPI *PKSERVICE_ROUTINE)(  /*IN*/ struct _KINTERRUPT  *Interrupt,  /*IN*/ PVOID  ServiceContext);typedef VOID(DDKAPI *PIO_TIMER_ROUTINE)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ PVOID  Context);typedef VOID(DDKAPI *PDRIVER_REINITIALIZE)(   /*IN*/ struct _DRIVER_OBJECT  *DriverObject,   /*IN*/ PVOID  Context,   /*IN*/ ULONG  Count); typedef NTSTATUS(DDKAPI *PDRIVER_STARTIO)(  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject,  /*IN*/ struct _IRP  *Irp);typedef BOOLEAN(DDKAPI *PKSYNCHRONIZE_ROUTINE)(  /*IN*/ PVOID  SynchronizeContext);typedef VOID(DDKAPI *PDRIVER_UNLOAD)(   /*IN*/ struct _DRIVER_OBJECT  *DriverObject); /*** Plug and Play structures*/typedef VOID DDKAPI(*PINTERFACE_REFERENCE)(  PVOID  Context);typedef VOID DDKAPI(*PINTERFACE_DEREFERENCE)(  PVOID Context);typedef BOOLEAN DDKAPI(*PTRANSLATE_BUS_ADDRESS)(  /*IN*/ PVOID  Context,  /*IN*/ PHYSICAL_ADDRESS  BusAddress,  /*IN*/ ULONG  Length,  /*IN OUT*/ PULONG  AddressSpace,  /*OUT*/ PPHYSICAL_ADDRESS  TranslatedAddress);typedef struct _DMA_ADAPTER* DDKAPI(*PGET_DMA_ADAPTER)(  /*IN*/ PVOID  Context,  /*IN*/ struct _DEVICE_DESCRIPTION  *DeviceDescriptor,  /*OUT*/ PULONG  NumberOfMapRegisters);typedef ULONG DDKAPI(*PGET_SET_DEVICE_DATA)(  /*IN*/ PVOID  Context,  /*IN*/ ULONG  DataType,  /*IN*/ PVOID  Buffer,  /*IN*/ ULONG  Offset,  /*IN*/ ULONG  Length);typedef union _POWER_STATE {  SYSTEM_POWER_STATE  SystemState;  DEVICE_POWER_STATE  DeviceState;} POWER_STATE, *PPOWER_STATE;typedef enum _POWER_STATE_TYPE {  SystemPowerState,  DevicePowerState} POWER_STATE_TYPE, *PPOWER_STATE_TYPE;typedef struct _BUS_INTERFACE_STANDARD {  USHORT  Size;  USHORT  Version;  PVOID  Context;  PINTERFACE_REFERENCE  InterfaceReference;  PINTERFACE_DEREFERENCE  InterfaceDereference;  PTRANSLATE_BUS_ADDRESS  TranslateBusAddress;  PGET_DMA_ADAPTER  GetDmaAdapter;  PGET_SET_DEVICE_DATA  SetBusData;  PGET_SET_DEVICE_DATA  GetBusData;} BUS_INTERFACE_STANDARD, *PBUS_INTERFACE_STANDARD;typedef struct _DEVICE_CAPABILITIES {  USHORT  Size;  USHORT  Version;  ULONG  DeviceD1 : 1;  ULONG  DeviceD2 : 1;  ULONG  LockSupported : 1;  ULONG  EjectSupported : 1;  ULONG  Removable : 1;  ULONG  DockDevice : 1;  ULONG  UniqueID : 1;  ULONG  SilentInstall : 1;  ULONG  RawDeviceOK : 1;  ULONG  SurpriseRemovalOK : 1;  ULONG  WakeFromD0 : 1;  ULONG  WakeFromD1 : 1;  ULONG  WakeFromD2 : 1;  ULONG  WakeFromD3 : 1;  ULONG  HardwareDisabled : 1;  ULONG  NonDynamic : 1;  ULONG  WarmEjectSupported : 1;  ULONG  NoDisplayInUI : 1;  ULONG  Reserved : 14;  ULONG  Address;  ULONG  UINumber;  DEVICE_POWER_STATE  DeviceState[PowerSystemMaximum];  SYSTEM_POWER_STATE  SystemWake;  DEVICE_POWER_STATE  DeviceWake;  ULONG  D1Latency;  ULONG  D2Latency;  ULONG  D3Latency;} DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {  USHORT  Version;  USHORT  Size;  GUID  Event;  GUID  InterfaceClassGuid;  PUNICODE_STRING  SymbolicLinkName;} DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION;typedef struct _HWPROFILE_CHANGE_NOTIFICATION {  USHORT  Version;  USHORT  Size;  GUID  Event;} HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;#undef INTERFACEtypedef struct _INTERFACE {  USHORT  Size;  USHORT  Version;  PVOID  Context;  PINTERFACE_REFERENCE  InterfaceReference;  PINTERFACE_DEREFERENCE  InterfaceDereference;} INTERFACE, *PINTERFACE; typedef struct _PLUGPLAY_NOTIFICATION_HEADER {  USHORT  Version;   USHORT  Size;   GUID  Event;} PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;/* PNP_DEVICE_STATE */#define PNP_DEVICE_DISABLED                      0x00000001#define PNP_DEVICE_DONT_DISPLAY_IN_UI            0x00000002#define PNP_DEVICE_FAILED                        0x00000004#define PNP_DEVICE_REMOVED                       0x00000008#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010#define PNP_DEVICE_NOT_DISABLEABLE               0x00000020typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {  USHORT  Version;  USHORT  Size;  GUID  Event;  struct _FILE_OBJECT  *FileObject;  LONG  NameBufferOffset;  UCHAR  CustomDataBuffer[1];} TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {  USHORT  Version;  USHORT  Size;  GUID  Event;  struct _FILE_OBJECT  *FileObject;} TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;typedef enum _BUS_QUERY_ID_TYPE {  BusQueryDeviceID,  BusQueryHardwareIDs,  BusQueryCompatibleIDs,  BusQueryInstanceID,  BusQueryDeviceSerialNumber} BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE;typedef enum _DEVICE_TEXT_TYPE {  DeviceTextDescription,  DeviceTextLocationInformation} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {  DeviceUsageTypeUndefined,  DeviceUsageTypePaging,  DeviceUsageTypeHibernation,  DeviceUsageTypeDumpFile} DEVICE_USAGE_NOTIFICATION_TYPE;typedef struct _POWER_SEQUENCE {  ULONG  SequenceD1;  ULONG  SequenceD2;  ULONG  SequenceD3;} POWER_SEQUENCE, *PPOWER_SEQUENCE;typedef enum {  DevicePropertyDeviceDescription,  DevicePropertyHardwareID,  DevicePropertyCompatibleIDs,  DevicePropertyBootConfiguration,  DevicePropertyBootConfigurationTranslated,  DevicePropertyClassName,  DevicePropertyClassGuid,  DevicePropertyDriverKeyName,  DevicePropertyManufacturer,  DevicePropertyFriendlyName,  DevicePropertyLocationInformation,  DevicePropertyPhysicalDeviceObjectName,  DevicePropertyBusTypeGuid,  DevicePropertyLegacyBusType,  DevicePropertyBusNumber,  DevicePropertyEnumeratorName,  DevicePropertyAddress,  DevicePropertyUINumber,  DevicePropertyInstallState,  DevicePropertyRemovalPolicy} DEVICE_REGISTRY_PROPERTY;typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {  EventCategoryReserved,  EventCategoryHardwareProfileChange,  EventCategoryDeviceInterfaceChange,  EventCategoryTargetDeviceChange} IO_NOTIFICATION_EVENT_CATEGORY;#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES    0x00000001typedef NTSTATUS DDKAPI(*PDRIVER_NOTIFICATION_CALLBACK_ROUTINE)(  /*IN*/ PVOID NotificationStructure,  /*IN*/ PVOID Context);typedef VOID DDKAPI(*PDEVICE_CHANGE_COMPLETE_CALLBACK)(  /*IN*/ PVOID Context);/*** System structures*/#define SYMBOLIC_LINK_QUERY               0x0001#define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)/* also in winnt,h */#define DUPLICATE_CLOSE_SOURCE            0x00000001#define DUPLICATE_SAME_ACCESS             0x00000002#define DUPLICATE_SAME_ATTRIBUTES         0x00000004/* end winnt.h */typedef struct _OBJECT_NAME_INFORMATION {                 UNICODE_STRING  Name;                                } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;   typedef VOID DDKAPI(*PIO_APC_ROUTINE)(  /*IN*/ PVOID ApcContext,  /*IN*/ PIO_STATUS_BLOCK IoStatusBlock,  /*IN*/ ULONG Reserved);typedef struct _IO_STATUS_BLOCK {  _ANONYMOUS_UNION union {    NTSTATUS  Status;    PVOID  Pointer;  } DUMMYUNIONNAME;  ULONG_PTR  Information;} IO_STATUS_BLOCK;typedef VOID DDKAPI(*PKNORMAL_ROUTINE)(  /*IN*/ PVOID  NormalContext,  /*IN*/ PVOID  SystemArgument1,  /*IN*/ PVOID  SystemArgument2);typedef VOID DDKAPI(*PKKERNEL_ROUTINE)(  /*IN*/ struct _KAPC  *Apc,  /*IN OUT*/ PKNORMAL_ROUTINE  *NormalRoutine,  /*IN OUT*/ PVOID  *NormalContext,  /*IN OUT*/ PVOID  *SystemArgument1,  /*IN OUT*/ PVOID  *SystemArgument2);typedef VOID DDKAPI(*PKRUNDOWN_ROUTINE)(  /*IN*/ struct _KAPC  *Apc);typedef BOOLEAN DDKAPI(*PKTRANSFER_ROUTINE)(  VOID);typedef struct _KAPC {  CSHORT  Type;  CSHORT  Size;  ULONG  Spare0;  struct _KTHREAD  *Thread;  LIST_ENTRY  ApcListEntry;  PKKERNEL_ROUTINE  KernelRoutine;  PKRUNDOWN_ROUTINE  RundownRoutine;  PKNORMAL_ROUTINE  NormalRoutine;  PVOID  NormalContext;  PVOID  SystemArgument1;  PVOID  SystemArgument2;  CCHAR  ApcStateIndex;  KPROCESSOR_MODE  ApcMode;  BOOLEAN  Inserted;} KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;typedef struct _KDEVICE_QUEUE {  CSHORT  Type;  CSHORT  Size;  LIST_ENTRY  DeviceListHead;  KSPIN_LOCK  Lock;  BOOLEAN  Busy;} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;typedef struct _KDEVICE_QUEUE_ENTRY {  LIST_ENTRY  DeviceListEntry;  ULONG  SortKey;  BOOLEAN  Inserted;} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,*RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;#define LOCK_QUEUE_WAIT                   1#define LOCK_QUEUE_OWNER                  2typedef enum _KSPIN_LOCK_QUEUE_NUMBER {  LockQueueDispatcherLock,  LockQueueContextSwapLock,  LockQueuePfnLock,  LockQueueSystemSpaceLock,  LockQueueVacbLock,  LockQueueMasterLock,  LockQueueNonPagedPoolLock,  LockQueueIoCancelLock,  LockQueueWorkQueueLock,  LockQueueIoVpbLock,  LockQueueIoDatabaseLock,  LockQueueIoCompletionLock,  LockQueueNtfsStructLock,  LockQueueAfdWorkQueueLock,  LockQueueBcbLock,  LockQueueMaximumLock} KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;typedef struct _KSPIN_LOCK_QUEUE {  struct _KSPIN_LOCK_QUEUE  *VOLATILE Next;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -