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

📄 winddk.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 5 页
字号:
  PKSPIN_LOCK VOLATILE  Lock;} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;typedef struct _KLOCK_QUEUE_HANDLE {  KSPIN_LOCK_QUEUE  LockQueue;  KIRQL  OldIrql;} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;typedef struct _KDPC {  CSHORT  Type;  UCHAR  Number;  UCHAR  Importance;  LIST_ENTRY  DpcListEntry;  PKDEFERRED_ROUTINE  DeferredRoutine;  PVOID  DeferredContext;  PVOID  SystemArgument1;  PVOID  SystemArgument2;  PULONG_PTR  Lock;} KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;typedef struct _WAIT_CONTEXT_BLOCK {  KDEVICE_QUEUE_ENTRY  WaitQueueEntry;  struct _DRIVER_CONTROL  *DeviceRoutine;  PVOID  DeviceContext;  ULONG  NumberOfMapRegisters;  PVOID  DeviceObject;  PVOID  CurrentIrp;  PKDPC  BufferChainingDpc;} WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;typedef struct _DISPATCHER_HEADER {  UCHAR  Type;  UCHAR  Absolute;  UCHAR  Size;  UCHAR  Inserted;  LONG  SignalState;  LIST_ENTRY  WaitListHead;} DISPATCHER_HEADER, *PDISPATCHER_HEADER;typedef struct _KEVENT {  DISPATCHER_HEADER  Header;} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;typedef struct _KSEMAPHORE {    DISPATCHER_HEADER Header;    LONG Limit;} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;typedef struct _FAST_MUTEX {  LONG  Count;  struct _KTHREAD  *Owner;  ULONG  Contention;  KEVENT  Event;  ULONG  OldIrql;} FAST_MUTEX, *PFAST_MUTEX;typedef struct _KTIMER {  DISPATCHER_HEADER  Header;  ULARGE_INTEGER  DueTime;  LIST_ENTRY  TimerListEntry;  struct _KDPC  *Dpc;  LONG  Period;} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;typedef struct _KMUTANT {  DISPATCHER_HEADER  Header;  LIST_ENTRY  MutantListEntry;  struct _KTHREAD  *RESTRICTED_POINTER OwnerThread;  BOOLEAN  Abandoned;  UCHAR  ApcDisable;} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;typedef enum _TIMER_TYPE {  NotificationTimer,  SynchronizationTimer} TIMER_TYPE;#define EVENT_INCREMENT                   1#define IO_NO_INCREMENT                   0#define IO_CD_ROM_INCREMENT               1#define IO_DISK_INCREMENT                 1#define IO_KEYBOARD_INCREMENT             6#define IO_MAILSLOT_INCREMENT             2#define IO_MOUSE_INCREMENT                6#define IO_NAMED_PIPE_INCREMENT           2#define IO_NETWORK_INCREMENT              2#define IO_PARALLEL_INCREMENT             1#define IO_SERIAL_INCREMENT               2#define IO_SOUND_INCREMENT                8#define IO_VIDEO_INCREMENT                1#define SEMAPHORE_INCREMENT               1typedef struct _IRP {  CSHORT  Type;  USHORT  Size;  struct _MDL  *MdlAddress;  ULONG  Flags;  union {    struct _IRP  *MasterIrp;    LONG  IrpCount;    PVOID  SystemBuffer;  } AssociatedIrp;  LIST_ENTRY  ThreadListEntry;  IO_STATUS_BLOCK  IoStatus;  KPROCESSOR_MODE  RequestorMode;  BOOLEAN  PendingReturned;  CHAR  StackCount;  CHAR  CurrentLocation;  BOOLEAN  Cancel;  KIRQL  CancelIrql;  CCHAR  ApcEnvironment;  UCHAR  AllocationFlags;  PIO_STATUS_BLOCK  UserIosb;  PKEVENT  UserEvent;  union {    struct {      PIO_APC_ROUTINE  UserApcRoutine;      PVOID  UserApcContext;    } AsynchronousParameters;    LARGE_INTEGER  AllocationSize;  } Overlay;  PDRIVER_CANCEL  CancelRoutine;  PVOID  UserBuffer;  union {    struct {      _ANONYMOUS_UNION union {        KDEVICE_QUEUE_ENTRY  DeviceQueueEntry;        _ANONYMOUS_STRUCT struct {          PVOID  DriverContext[4];        } DUMMYSTRUCTNAME;      } DUMMYUNIONNAME;      PETHREAD  Thread;      PCHAR  AuxiliaryBuffer;      _ANONYMOUS_STRUCT struct {        LIST_ENTRY  ListEntry;        _ANONYMOUS_UNION union {          struct _IO_STACK_LOCATION  *CurrentStackLocation;          ULONG  PacketType;        } DUMMYUNIONNAME;      } DUMMYSTRUCTNAME;      struct _FILE_OBJECT  *OriginalFileObject;    } Overlay;    KAPC  Apc;    PVOID  CompletionKey;  } Tail;} IRP;typedef struct _IRP *PIRP;/* IRP.Flags */#define SL_FORCE_ACCESS_CHECK             0x01#define SL_OPEN_PAGING_FILE               0x02#define SL_OPEN_TARGET_DIRECTORY          0x04#define SL_CASE_SENSITIVE                 0x80#define SL_KEY_SPECIFIED                  0x01#define SL_OVERRIDE_VERIFY_VOLUME         0x02#define SL_WRITE_THROUGH                  0x04#define SL_FT_SEQUENTIAL_WRITE            0x08#define SL_FAIL_IMMEDIATELY               0x01#define SL_EXCLUSIVE_LOCK                 0x02#define SL_RESTART_SCAN                   0x01#define SL_RETURN_SINGLE_ENTRY            0x02#define SL_INDEX_SPECIFIED                0x04#define SL_WATCH_TREE                     0x01#define SL_ALLOW_RAW_MOUNT                0x01#define CTL_CODE(DeviceType, Function, Method, Access)( \  ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))#define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)enum{   IRP_NOCACHE = 0x1,   IRP_PAGING_IO = 0x2,   IRP_MOUNT_COMPLETION = 0x2,   IRP_SYNCHRONOUS_API = 0x4,   IRP_ASSOCIATED_IRP = 0x8,   IRP_BUFFERED_IO = 0x10,   IRP_DEALLOCATE_BUFFER = 0x20,   IRP_INPUT_OPERATION = 0x40,   IRP_SYNCHRONOUS_PAGING_IO = 0x40,   IRP_CREATE_OPERATION = 0x80,   IRP_READ_OPERATION = 0x100,   IRP_WRITE_OPERATION = 0x200,   IRP_CLOSE_OPERATION = 0x400,   IRP_DEFER_IO_COMPLETION = 0x800,   IRP_OB_QUERY_NAME = 0x1000,   IRP_HOLD_DEVICE_QUEUE = 0x2000,   IRP_RETRY_IO_COMPLETION = 0x4000};typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {  ULONG  Signature;} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {  GUID  DiskId;  LARGE_INTEGER  StartingUsableOffset;  LARGE_INTEGER  UsableLength;  ULONG  MaxPartitionCount;} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;typedef struct _PARTITION_INFORMATION_MBR {  UCHAR  PartitionType;  BOOLEAN  BootIndicator;  BOOLEAN  RecognizedPartition;  ULONG  HiddenSectors;} PARTITION_INFORMATION_MBR, *PPARTITION_INFORMATION_MBR;typedef struct _BOOTDISK_INFORMATION {  LONGLONG  BootPartitionOffset;  LONGLONG  SystemPartitionOffset;  ULONG  BootDeviceSignature;  ULONG  SystemDeviceSignature;} BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION;typedef struct _BOOTDISK_INFORMATION_EX {  LONGLONG  BootPartitionOffset;  LONGLONG  SystemPartitionOffset;  ULONG  BootDeviceSignature;  ULONG  SystemDeviceSignature;  GUID  BootDeviceGuid;  GUID  SystemDeviceGuid;  BOOLEAN  BootDeviceIsGpt;  BOOLEAN  SystemDeviceIsGpt;} BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;typedef struct _EISA_MEMORY_TYPE {  UCHAR  ReadWrite : 1;  UCHAR  Cached : 1;  UCHAR  Reserved0 : 1;  UCHAR  Type : 2;  UCHAR  Shared : 1;  UCHAR  Reserved1 : 1;  UCHAR  MoreEntries : 1;} EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE;#include <pshpack1.h>typedef struct _EISA_MEMORY_CONFIGURATION {  EISA_MEMORY_TYPE  ConfigurationByte;  UCHAR  DataSize;  USHORT  AddressLowWord;  UCHAR  AddressHighByte;  USHORT  MemorySize;} EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION;#include <poppack.h>typedef struct _EISA_IRQ_DESCRIPTOR {  UCHAR  Interrupt : 4;  UCHAR  Reserved : 1;  UCHAR  LevelTriggered : 1;  UCHAR  Shared : 1;  UCHAR  MoreEntries : 1;} EISA_IRQ_DESCRIPTOR, *PEISA_IRQ_DESCRIPTOR;typedef struct _EISA_IRQ_CONFIGURATION {  EISA_IRQ_DESCRIPTOR  ConfigurationByte;  UCHAR  Reserved;} EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION;typedef struct _DMA_CONFIGURATION_BYTE0 {  UCHAR Channel : 3;  UCHAR Reserved : 3;  UCHAR Shared : 1;  UCHAR MoreEntries : 1;} DMA_CONFIGURATION_BYTE0;typedef struct _DMA_CONFIGURATION_BYTE1 {  UCHAR  Reserved0 : 2;  UCHAR  TransferSize : 2;  UCHAR  Timing : 2;  UCHAR  Reserved1 : 2;} DMA_CONFIGURATION_BYTE1;typedef struct _EISA_DMA_CONFIGURATION {  DMA_CONFIGURATION_BYTE0  ConfigurationByte0;  DMA_CONFIGURATION_BYTE1  ConfigurationByte1;} EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION;#include <pshpack1.h>typedef struct _EISA_PORT_DESCRIPTOR {  UCHAR  NumberPorts : 5;  UCHAR  Reserved : 1;  UCHAR  Shared : 1;  UCHAR  MoreEntries : 1;} EISA_PORT_DESCRIPTOR, *PEISA_PORT_DESCRIPTOR;typedef struct _EISA_PORT_CONFIGURATION {  EISA_PORT_DESCRIPTOR  Configuration;  USHORT  PortAddress;} EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION;#include <poppack.h>typedef struct _CM_EISA_FUNCTION_INFORMATION {  ULONG  CompressedId;  UCHAR  IdSlotFlags1;  UCHAR  IdSlotFlags2;  UCHAR  MinorRevision;  UCHAR  MajorRevision;  UCHAR  Selections[26];  UCHAR  FunctionFlags;  UCHAR  TypeString[80];  EISA_MEMORY_CONFIGURATION  EisaMemory[9];  EISA_IRQ_CONFIGURATION  EisaIrq[7];  EISA_DMA_CONFIGURATION  EisaDma[4];  EISA_PORT_CONFIGURATION  EisaPort[20];  UCHAR  InitializationData[60];} CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION;/* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */#define EISA_FUNCTION_ENABLED           0x80#define EISA_FREE_FORM_DATA             0x40#define EISA_HAS_PORT_INIT_ENTRY        0x20#define EISA_HAS_PORT_RANGE             0x10#define EISA_HAS_DMA_ENTRY              0x08#define EISA_HAS_IRQ_ENTRY              0x04#define EISA_HAS_MEMORY_ENTRY           0x02#define EISA_HAS_TYPE_ENTRY             0x01#define EISA_HAS_INFORMATION \  (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \  + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)typedef struct _CM_EISA_SLOT_INFORMATION {  UCHAR  ReturnCode;  UCHAR  ReturnFlags;  UCHAR  MajorRevision;  UCHAR  MinorRevision;  USHORT  Checksum;  UCHAR  NumberFunctions;  UCHAR  FunctionInformation;  ULONG  CompressedId;} CM_EISA_SLOT_INFORMATION, *PCM_EISA_SLOT_INFORMATION;/* CM_EISA_SLOT_INFORMATION.ReturnCode */#define EISA_INVALID_SLOT               0x80#define EISA_INVALID_FUNCTION           0x81#define EISA_INVALID_CONFIGURATION      0x82#define EISA_EMPTY_SLOT                 0x83#define EISA_INVALID_BIOS_CALL          0x86typedef struct _CM_FLOPPY_DEVICE_DATA {  USHORT  Version;  USHORT  Revision;  CHAR  Size[8];  ULONG  MaxDensity;  ULONG  MountDensity;  UCHAR  StepRateHeadUnloadTime;  UCHAR  HeadLoadTime;  UCHAR  MotorOffTime;  UCHAR  SectorLengthCode;  UCHAR  SectorPerTrack;  UCHAR  ReadWriteGapLength;  UCHAR  DataTransferLength;  UCHAR  FormatGapLength;  UCHAR  FormatFillCharacter;  UCHAR  HeadSettleTime;  UCHAR  MotorSettleTime;  UCHAR  MaximumTrackValue;  UCHAR  DataTransferRate;} CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA;typedef enum _INTERFACE_TYPE {  InterfaceTypeUndefined = -1,  Internal,  Isa,  Eisa,  MicroChannel,  TurboChannel,  PCIBus,  VMEBus,  NuBus,  PCMCIABus,  CBus,  MPIBus,  MPSABus,  ProcessorInternal,  InternalPowerBus,  PNPISABus,  PNPBus,  MaximumInterfaceType} INTERFACE_TYPE, *PINTERFACE_TYPE;typedef struct _PNP_BUS_INFORMATION {  GUID  BusTypeGuid;  INTERFACE_TYPE  LegacyBusType;  ULONG  BusNumber;} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;#include <pshpack1.h>typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {  UCHAR Type;  UCHAR ShareDisposition;  USHORT Flags;  union {    struct {      PHYSICAL_ADDRESS Start;      ULONG Length;    } Generic;    struct {      PHYSICAL_ADDRESS Start;      ULONG Length;    } Port;    struct {      ULONG Level;      ULONG Vector;      ULONG Affinity;    } Interrupt;    struct {      PHYSICAL_ADDRESS Start;      ULONG Length;    } Memory;    struct {      ULONG Channel;      ULONG Port;      ULONG Reserved1;    } Dma;    struct {      ULONG Data[3];    } DevicePrivate;    struct {      ULONG Start;      ULONG Length;      ULONG Reserved;    } BusNumber;    struct {

⌨️ 快捷键说明

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