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

📄 winddk.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 5 页
字号:
typedef enum _DEVICE_RELATION_TYPE {  BusRelations,  EjectionRelations,  PowerRelations,  RemovalRelations,  TargetDeviceRelation,  SingleBusRelations} DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;typedef struct _DEVICE_RELATIONS {  ULONG  Count;  PDEVICE_OBJECT Objects[1];} DEVICE_RELATIONS, *PDEVICE_RELATIONS;typedef struct _SCATTER_GATHER_ELEMENT {  PHYSICAL_ADDRESS  Address;     ULONG  Length;            ULONG_PTR  Reserved;} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;typedef struct _SCATTER_GATHER_LIST {  ULONG  NumberOfElements;  ULONG_PTR  Reserved;  SCATTER_GATHER_ELEMENT  Elements[0];} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;typedef struct _MDL {  struct _MDL  *Next;  CSHORT  Size;  CSHORT  MdlFlags;  struct _EPROCESS  *Process;  PVOID  MappedSystemVa;  PVOID  StartVa;  ULONG  ByteCount;  ULONG  ByteOffset;} MDL, *PMDL;#define MDL_MAPPED_TO_SYSTEM_VA           0x0001#define MDL_PAGES_LOCKED                  0x0002#define MDL_SOURCE_IS_NONPAGED_POOL       0x0004#define MDL_ALLOCATED_FIXED_SIZE          0x0008#define MDL_PARTIAL                       0x0010#define MDL_PARTIAL_HAS_BEEN_MAPPED       0x0020#define MDL_IO_PAGE_READ                  0x0040#define MDL_WRITE_OPERATION               0x0080#define MDL_PARENT_MAPPED_SYSTEM_VA       0x0100#define MDL_FREE_EXTRA_PTES               0x0200#define MDL_IO_SPACE                      0x0800#define MDL_NETWORK_HEADER                0x1000#define MDL_MAPPING_CAN_FAIL              0x2000#define MDL_ALLOCATED_MUST_SUCCEED        0x4000#define MDL_MAPPING_FLAGS ( \  MDL_MAPPED_TO_SYSTEM_VA     | \  MDL_PAGES_LOCKED            | \  MDL_SOURCE_IS_NONPAGED_POOL | \  MDL_PARTIAL_HAS_BEEN_MAPPED | \  MDL_PARENT_MAPPED_SYSTEM_VA | \  MDL_SYSTEM_VA               | \  MDL_IO_SPACE)typedef VOID DDKAPI(*PPUT_DMA_ADAPTER)(  /*IN*/ PDMA_ADAPTER  DmaAdapter);typedef PVOID DDKAPI(*PALLOCATE_COMMON_BUFFER)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ ULONG  Length,  /*OUT*/ PPHYSICAL_ADDRESS  LogicalAddress,  /*IN*/ BOOLEAN  CacheEnabled);typedef VOID DDKAPI(*PFREE_COMMON_BUFFER)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ ULONG  Length,  /*IN*/ PHYSICAL_ADDRESS  LogicalAddress,  /*IN*/ PVOID  VirtualAddress,  /*IN*/ BOOLEAN  CacheEnabled);typedef NTSTATUS DDKAPI(*PALLOCATE_ADAPTER_CHANNEL)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PDEVICE_OBJECT  DeviceObject,  /*IN*/ ULONG  NumberOfMapRegisters,  /*IN*/ PDRIVER_CONTROL  ExecutionRoutine,  /*IN*/ PVOID  Context);typedef BOOLEAN DDKAPI(*PFLUSH_ADAPTER_BUFFERS)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ PVOID  CurrentVa,  /*IN*/ ULONG  Length,  /*IN*/ BOOLEAN  WriteToDevice);typedef VOID DDKAPI(*PFREE_ADAPTER_CHANNEL)(  /*IN*/ PDMA_ADAPTER  DmaAdapter);typedef VOID DDKAPI(*PFREE_MAP_REGISTERS)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  PVOID  MapRegisterBase,  ULONG  NumberOfMapRegisters);typedef PHYSICAL_ADDRESS DDKAPI(*PMAP_TRANSFER)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  MapRegisterBase,  /*IN*/ PVOID  CurrentVa,  /*IN OUT*/ PULONG  Length,  /*IN*/ BOOLEAN  WriteToDevice);typedef ULONG DDKAPI(*PGET_DMA_ALIGNMENT)(  /*IN*/ PDMA_ADAPTER  DmaAdapter);typedef ULONG DDKAPI(*PREAD_DMA_COUNTER)(  /*IN*/ PDMA_ADAPTER  DmaAdapter);typedef NTSTATUS DDKAPI(*PGET_SCATTER_GATHER_LIST)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PDEVICE_OBJECT  DeviceObject,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  CurrentVa,  /*IN*/ ULONG  Length,  /*IN*/ PDRIVER_LIST_CONTROL  ExecutionRoutine,  /*IN*/ PVOID  Context,  /*IN*/ BOOLEAN  WriteToDevice);typedef VOID DDKAPI(*PPUT_SCATTER_GATHER_LIST)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PSCATTER_GATHER_LIST  ScatterGather,  /*IN*/ BOOLEAN  WriteToDevice);typedef NTSTATUS DDKAPI(*PCALCULATE_SCATTER_GATHER_LIST_SIZE)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PMDL  Mdl  /*OPTIONAL*/,  /*IN*/ PVOID  CurrentVa,  /*IN*/ ULONG  Length,  /*OUT*/ PULONG  ScatterGatherListSize,  /*OUT*/ PULONG  pNumberOfMapRegisters  /*OPTIONAL*/);typedef NTSTATUS DDKAPI(*PBUILD_SCATTER_GATHER_LIST)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PDEVICE_OBJECT  DeviceObject,  /*IN*/ PMDL  Mdl,  /*IN*/ PVOID  CurrentVa,  /*IN*/ ULONG  Length,  /*IN*/ PDRIVER_LIST_CONTROL  ExecutionRoutine,  /*IN*/ PVOID  Context,  /*IN*/ BOOLEAN  WriteToDevice,  /*IN*/ PVOID  ScatterGatherBuffer,  /*IN*/ ULONG  ScatterGatherLength);typedef NTSTATUS DDKAPI(*PBUILD_MDL_FROM_SCATTER_GATHER_LIST)(  /*IN*/ PDMA_ADAPTER  DmaAdapter,  /*IN*/ PSCATTER_GATHER_LIST  ScatterGather,  /*IN*/ PMDL  OriginalMdl,  /*OUT*/ PMDL  *TargetMdl);typedef struct _DMA_OPERATIONS {  ULONG  Size;  PPUT_DMA_ADAPTER  PutDmaAdapter;  PALLOCATE_COMMON_BUFFER  AllocateCommonBuffer;  PFREE_COMMON_BUFFER  FreeCommonBuffer;  PALLOCATE_ADAPTER_CHANNEL  AllocateAdapterChannel;  PFLUSH_ADAPTER_BUFFERS  FlushAdapterBuffers;  PFREE_ADAPTER_CHANNEL  FreeAdapterChannel;  PFREE_MAP_REGISTERS  FreeMapRegisters;  PMAP_TRANSFER  MapTransfer;  PGET_DMA_ALIGNMENT  GetDmaAlignment;  PREAD_DMA_COUNTER  ReadDmaCounter;  PGET_SCATTER_GATHER_LIST  GetScatterGatherList;  PPUT_SCATTER_GATHER_LIST  PutScatterGatherList;  PCALCULATE_SCATTER_GATHER_LIST_SIZE  CalculateScatterGatherList;  PBUILD_SCATTER_GATHER_LIST  BuildScatterGatherList;  PBUILD_MDL_FROM_SCATTER_GATHER_LIST  BuildMdlFromScatterGatherList;} DMA_OPERATIONS, *PDMA_OPERATIONS;typedef struct _DMA_ADAPTER {  USHORT  Version;  USHORT  Size;  PDMA_OPERATIONS  DmaOperations;} DMA_ADAPTER;typedef enum _FILE_INFORMATION_CLASS {  FileDirectoryInformation = 1,  FileFullDirectoryInformation,  FileBothDirectoryInformation,  FileBasicInformation,  FileStandardInformation,  FileInternalInformation,  FileEaInformation,  FileAccessInformation,  FileNameInformation,  FileRenameInformation,  FileLinkInformation,  FileNamesInformation,  FileDispositionInformation,  FilePositionInformation,  FileFullEaInformation,  FileModeInformation,  FileAlignmentInformation,  FileAllInformation,  FileAllocationInformation,  FileEndOfFileInformation,  FileAlternateNameInformation,  FileStreamInformation,  FilePipeInformation,  FilePipeLocalInformation,  FilePipeRemoteInformation,  FileMailslotQueryInformation,  FileMailslotSetInformation,  FileCompressionInformation,  FileObjectIdInformation,  FileCompletionInformation,  FileMoveClusterInformation,  FileQuotaInformation,  FileReparsePointInformation,  FileNetworkOpenInformation,  FileAttributeTagInformation,  FileTrackingInformation,  FileIdBothDirectoryInformation,  FileIdFullDirectoryInformation,  FileValidDataLengthInformation,  FileShortNameInformation,  FileMaximumInformation} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;typedef struct _FILE_POSITION_INFORMATION {                   LARGE_INTEGER  CurrentByteOffset;                        } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;   typedef struct _FILE_ALIGNMENT_INFORMATION {  ULONG  AlignmentRequirement;} FILE_ALIGNMENT_INFORMATION;typedef struct _FILE_NAME_INFORMATION {                       ULONG  FileNameLength;                                     WCHAR  FileName[1];                                      } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;           typedef struct _FILE_BASIC_INFORMATION {  LARGE_INTEGER  CreationTime;  LARGE_INTEGER  LastAccessTime;  LARGE_INTEGER  LastWriteTime;  LARGE_INTEGER  ChangeTime;  ULONG  FileAttributes;} FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;typedef struct _FILE_STANDARD_INFORMATION {  LARGE_INTEGER  AllocationSize;  LARGE_INTEGER  EndOfFile;  ULONG  NumberOfLinks;  BOOLEAN  DeletePending;  BOOLEAN  Directory;} FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;typedef struct _FILE_NETWORK_OPEN_INFORMATION {                   LARGE_INTEGER  CreationTime;                                   LARGE_INTEGER  LastAccessTime;                                 LARGE_INTEGER  LastWriteTime;                                  LARGE_INTEGER  ChangeTime;                                     LARGE_INTEGER  AllocationSize;                                 LARGE_INTEGER  EndOfFile;                                      ULONG  FileAttributes;                                       } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;   typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {                 ULONG  FileAttributes;                                         ULONG  ReparseTag;                                           } FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION;typedef struct _FILE_DISPOSITION_INFORMATION {                    BOOLEAN  DoDeleteFile;                                         } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;                                                                 typedef struct _FILE_END_OF_FILE_INFORMATION {                    LARGE_INTEGER  EndOfFile;                                    } FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;                                                                 typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {                                      LARGE_INTEGER  ValidDataLength;                                                      } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;             typedef enum _FSINFOCLASS {  FileFsVolumeInformation = 1,  FileFsLabelInformation,  FileFsSizeInformation,  FileFsDeviceInformation,  FileFsAttributeInformation,  FileFsControlInformation,  FileFsFullSizeInformation,  FileFsObjectIdInformation,  FileFsDriverPathInformation,  FileFsMaximumInformation} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;typedef struct _FILE_FS_DEVICE_INFORMATION {  DEVICE_TYPE  DeviceType;  ULONG  Characteristics;} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;typedef struct _FILE_FULL_EA_INFORMATION {  ULONG  NextEntryOffset;  UCHAR  Flags;  UCHAR  EaNameLength;  USHORT  EaValueLength;  CHAR  EaName[1];} FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;typedef ULONG_PTR ERESOURCE_THREAD;typedef ERESOURCE_THREAD *PERESOURCE_THREAD;typedef struct _OWNER_ENTRY {  ERESOURCE_THREAD  OwnerThread;  _ANONYMOUS_UNION union {      LONG  OwnerCount;      ULONG  TableSize;  } DUMMYUNIONNAME;} OWNER_ENTRY, *POWNER_ENTRY;/* ERESOURCE.Flag */#define ResourceNeverExclusive            0x0010#define ResourceReleaseByOtherThread      0x0020#define ResourceOwnedExclusive            0x0080#define RESOURCE_HASH_TABLE_SIZE          64typedef struct _ERESOURCE {  LIST_ENTRY  SystemResourcesList;  POWNER_ENTRY  OwnerTable;  SHORT  ActiveCount;  USHORT  Flag;  PKSEMAPHORE  SharedWaiters;  PKEVENT  ExclusiveWaiters;  OWNER_ENTRY  OwnerThreads[2];  ULONG  ContentionCount;  USHORT  NumberOfSharedWaiters;  USHORT  NumberOfExclusiveWaiters;  _ANONYMOUS_UNION union {    PVOID  Address;    ULONG_PTR  CreatorBackTraceIndex;  } DUMMYUNIONNAME;  KSPIN_LOCK  SpinLock;} ERESOURCE, *PERESOURCE;/* NOTE: PVOID for methods to avoid 'assignment from incompatible pointer type' warning */typedef struct _DRIVER_EXTENSION {  struct _DRIVER_OBJECT  *DriverObject;  PVOID  AddDevice;  ULONG  Count;  UNICODE_STRING  ServiceKeyName;} DRIVER_EXTENSION, *PDRIVER_EXTENSION;typedef BOOLEAN DDKAPI(*PFAST_IO_CHECK_IF_POSSIBLE)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ PLARGE_INTEGER  FileOffset,  /*IN*/ ULONG  Length,  /*IN*/ BOOLEAN  Wait,  /*IN*/ ULONG  LockKey,  /*IN*/ BOOLEAN  CheckForReadOperation,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_READ)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ PLARGE_INTEGER  FileOffset,  /*IN*/ ULONG  Length,  /*IN*/ BOOLEAN  Wait,  /*IN*/ ULONG  LockKey,  /*OUT*/ PVOID  Buffer,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_WRITE)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ PLARGE_INTEGER  FileOffset,  /*IN*/ ULONG  Length,  /*IN*/ BOOLEAN  Wait,  /*IN*/ ULONG  LockKey,  /*IN*/ PVOID  Buffer,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_QUERY_BASIC_INFO)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ BOOLEAN  Wait,  /*OUT*/ PFILE_BASIC_INFORMATION  Buffer,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_QUERY_STANDARD_INFO)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ BOOLEAN  Wait,  /*OUT*/ PFILE_STANDARD_INFORMATION  Buffer,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_LOCK)(  /*IN*/ struct _FILE_OBJECT  *FileObject,  /*IN*/ PLARGE_INTEGER  FileOffset,  /*IN*/ PLARGE_INTEGER  Length,  PEPROCESS  ProcessId,  ULONG  Key,  BOOLEAN  FailImmediately,  BOOLEAN  ExclusiveLock,  /*OUT*/ PIO_STATUS_BLOCK  IoStatus,  /*IN*/ struct _DEVICE_OBJECT  *DeviceObject);typedef BOOLEAN DDKAPI(*PFAST_IO_UNLOCK_SINGLE)(  /*IN*/ struct _FILE_OBJECT  *F

⌨️ 快捷键说明

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