mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
- Move more stuff to wdm.h
- Add several missing _FILE_INFORMATION_CLASS members - Add a missing _FSINFOCLASS member svn path=/branches/header-work/; revision=45724
This commit is contained in:
parent
6bab8c7b64
commit
106dc08bed
2 changed files with 356 additions and 338 deletions
|
@ -1772,6 +1772,362 @@ typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#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_DESCRIBES_AWE 0x0400
|
||||||
|
#define MDL_IO_SPACE 0x0800
|
||||||
|
#define MDL_NETWORK_HEADER 0x1000
|
||||||
|
#define MDL_MAPPING_CAN_FAIL 0x2000
|
||||||
|
#define MDL_ALLOCATED_MUST_SUCCEED 0x4000
|
||||||
|
#define MDL_INTERNAL 0x8000
|
||||||
|
|
||||||
|
|
||||||
|
#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 struct _DRIVER_EXTENSION {
|
||||||
|
struct _DRIVER_OBJECT *DriverObject;
|
||||||
|
PDRIVER_ADD_DEVICE AddDevice;
|
||||||
|
ULONG Count;
|
||||||
|
UNICODE_STRING ServiceKeyName;
|
||||||
|
} DRIVER_EXTENSION, *PDRIVER_EXTENSION;
|
||||||
|
|
||||||
|
#define DRVO_UNLOAD_INVOKED 0x00000001
|
||||||
|
#define DRVO_LEGACY_DRIVER 0x00000002
|
||||||
|
#define DRVO_BUILTIN_DRIVER 0x00000004
|
||||||
|
|
||||||
|
typedef struct _DRIVER_OBJECT {
|
||||||
|
CSHORT Type;
|
||||||
|
CSHORT Size;
|
||||||
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
ULONG Flags;
|
||||||
|
PVOID DriverStart;
|
||||||
|
ULONG DriverSize;
|
||||||
|
PVOID DriverSection;
|
||||||
|
PDRIVER_EXTENSION DriverExtension;
|
||||||
|
UNICODE_STRING DriverName;
|
||||||
|
PUNICODE_STRING HardwareDatabase;
|
||||||
|
struct _FAST_IO_DISPATCH *FastIoDispatch;
|
||||||
|
PDRIVER_INITIALIZE DriverInit;
|
||||||
|
PDRIVER_STARTIO DriverStartIo;
|
||||||
|
PDRIVER_UNLOAD DriverUnload;
|
||||||
|
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
|
||||||
|
} DRIVER_OBJECT;
|
||||||
|
typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
|
||||||
|
|
||||||
|
typedef struct _DMA_ADAPTER {
|
||||||
|
USHORT Version;
|
||||||
|
USHORT Size;
|
||||||
|
struct _DMA_OPERATIONS* DmaOperations;
|
||||||
|
} DMA_ADAPTER, *PDMA_ADAPTER;
|
||||||
|
|
||||||
|
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 enum _KPROFILE_SOURCE {
|
||||||
|
ProfileTime,
|
||||||
|
ProfileAlignmentFixup,
|
||||||
|
ProfileTotalIssues,
|
||||||
|
ProfilePipelineDry,
|
||||||
|
ProfileLoadInstructions,
|
||||||
|
ProfilePipelineFrozen,
|
||||||
|
ProfileBranchInstructions,
|
||||||
|
ProfileTotalNonissues,
|
||||||
|
ProfileDcacheMisses,
|
||||||
|
ProfileIcacheMisses,
|
||||||
|
ProfileCacheMisses,
|
||||||
|
ProfileBranchMispredictions,
|
||||||
|
ProfileStoreInstructions,
|
||||||
|
ProfileFpInstructions,
|
||||||
|
ProfileIntegerInstructions,
|
||||||
|
Profile2Issue,
|
||||||
|
Profile3Issue,
|
||||||
|
Profile4Issue,
|
||||||
|
ProfileSpecialInstructions,
|
||||||
|
ProfileTotalCycles,
|
||||||
|
ProfileIcacheIssues,
|
||||||
|
ProfileDcacheAccesses,
|
||||||
|
ProfileMemoryBarrierCycles,
|
||||||
|
ProfileLoadLinkedIssues,
|
||||||
|
ProfileMaximum
|
||||||
|
} KPROFILE_SOURCE;
|
||||||
|
|
||||||
|
typedef enum _KD_OPTION {
|
||||||
|
KD_OPTION_SET_BLOCK_ENABLE,
|
||||||
|
} KD_OPTION;
|
||||||
|
|
||||||
|
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,
|
||||||
|
FileIoCompletionNotificationInformation,
|
||||||
|
FileIoStatusBlockRangeInformation,
|
||||||
|
FileIoPriorityHintInformation,
|
||||||
|
FileSfioReserveInformation,
|
||||||
|
FileSfioVolumeInformation,
|
||||||
|
FileHardLinkInformation,
|
||||||
|
FileProcessIdsUsingFileInformation,
|
||||||
|
FileNormalizedNameInformation,
|
||||||
|
FileNetworkPhysicalNameInformation,
|
||||||
|
FileIdGlobalTxDirectoryInformation,
|
||||||
|
FileIsRemoteDeviceInformation,
|
||||||
|
FileAttributeCacheInformation,
|
||||||
|
FileNumaNodeInformation,
|
||||||
|
FileStandardLinkInformation,
|
||||||
|
FileRemoteProtocolInformation,
|
||||||
|
FileMaximumInformation
|
||||||
|
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
||||||
|
|
||||||
|
typedef struct _FILE_POSITION_INFORMATION {
|
||||||
|
LARGE_INTEGER CurrentByteOffset;
|
||||||
|
} FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
|
||||||
|
|
||||||
|
#include <pshpack8.h>
|
||||||
|
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;
|
||||||
|
#include <poppack.h>
|
||||||
|
|
||||||
|
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 enum _FSINFOCLASS {
|
||||||
|
FileFsVolumeInformation = 1,
|
||||||
|
FileFsLabelInformation,
|
||||||
|
FileFsSizeInformation,
|
||||||
|
FileFsDeviceInformation,
|
||||||
|
FileFsAttributeInformation,
|
||||||
|
FileFsControlInformation,
|
||||||
|
FileFsFullSizeInformation,
|
||||||
|
FileFsObjectIdInformation,
|
||||||
|
FileFsDriverPathInformation,
|
||||||
|
FileFsVolumeFlagsInformation,
|
||||||
|
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;
|
||||||
|
|
||||||
|
/* ERESOURCE.Flag */
|
||||||
|
|
||||||
|
#define ResourceNeverExclusive 0x0010
|
||||||
|
#define ResourceReleaseByOtherThread 0x0020
|
||||||
|
#define ResourceOwnedExclusive 0x0080
|
||||||
|
|
||||||
|
#define RESOURCE_HASH_TABLE_SIZE 64
|
||||||
|
|
||||||
|
typedef struct _DEVOBJ_EXTENSION
|
||||||
|
{
|
||||||
|
CSHORT Type;
|
||||||
|
USHORT Size;
|
||||||
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
} DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
|
||||||
|
|
||||||
/* Simple types */
|
/* Simple types */
|
||||||
typedef UCHAR KPROCESSOR_MODE;
|
typedef UCHAR KPROCESSOR_MODE;
|
||||||
typedef LONG KPRIORITY;
|
typedef LONG KPRIORITY;
|
||||||
|
|
|
@ -531,201 +531,11 @@ typedef struct _CONTROLLER_OBJECT {
|
||||||
#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
|
#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
|
||||||
#define DO_XIP 0x00020000
|
#define DO_XIP 0x00020000
|
||||||
|
|
||||||
#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_DESCRIBES_AWE 0x0400
|
|
||||||
#define MDL_IO_SPACE 0x0800
|
|
||||||
#define MDL_NETWORK_HEADER 0x1000
|
|
||||||
#define MDL_MAPPING_CAN_FAIL 0x2000
|
|
||||||
#define MDL_ALLOCATED_MUST_SUCCEED 0x4000
|
|
||||||
#define MDL_INTERNAL 0x8000
|
|
||||||
|
|
||||||
|
|
||||||
#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 struct _DRIVER_EXTENSION {
|
|
||||||
struct _DRIVER_OBJECT *DriverObject;
|
|
||||||
PDRIVER_ADD_DEVICE AddDevice;
|
|
||||||
ULONG Count;
|
|
||||||
UNICODE_STRING ServiceKeyName;
|
|
||||||
} DRIVER_EXTENSION, *PDRIVER_EXTENSION;
|
|
||||||
|
|
||||||
#define DRVO_UNLOAD_INVOKED 0x00000001
|
|
||||||
#define DRVO_LEGACY_DRIVER 0x00000002
|
|
||||||
#define DRVO_BUILTIN_DRIVER 0x00000004
|
|
||||||
#define DRVO_REINIT_REGISTERED 0x00000008
|
#define DRVO_REINIT_REGISTERED 0x00000008
|
||||||
#define DRVO_INITIALIZED 0x00000010
|
#define DRVO_INITIALIZED 0x00000010
|
||||||
#define DRVO_BOOTREINIT_REGISTERED 0x00000020
|
#define DRVO_BOOTREINIT_REGISTERED 0x00000020
|
||||||
#define DRVO_LEGACY_RESOURCES 0x00000040
|
#define DRVO_LEGACY_RESOURCES 0x00000040
|
||||||
|
|
||||||
typedef struct _DRIVER_OBJECT {
|
|
||||||
CSHORT Type;
|
|
||||||
CSHORT Size;
|
|
||||||
PDEVICE_OBJECT DeviceObject;
|
|
||||||
ULONG Flags;
|
|
||||||
PVOID DriverStart;
|
|
||||||
ULONG DriverSize;
|
|
||||||
PVOID DriverSection;
|
|
||||||
PDRIVER_EXTENSION DriverExtension;
|
|
||||||
UNICODE_STRING DriverName;
|
|
||||||
PUNICODE_STRING HardwareDatabase;
|
|
||||||
struct _FAST_IO_DISPATCH *FastIoDispatch;
|
|
||||||
PDRIVER_INITIALIZE DriverInit;
|
|
||||||
PDRIVER_STARTIO DriverStartIo;
|
|
||||||
PDRIVER_UNLOAD DriverUnload;
|
|
||||||
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
|
|
||||||
} DRIVER_OBJECT;
|
|
||||||
typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
|
|
||||||
|
|
||||||
typedef struct _DMA_ADAPTER {
|
|
||||||
USHORT Version;
|
|
||||||
USHORT Size;
|
|
||||||
struct _DMA_OPERATIONS* DmaOperations;
|
|
||||||
} DMA_ADAPTER, *PDMA_ADAPTER;
|
|
||||||
|
|
||||||
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 enum _ARBITER_REQUEST_SOURCE {
|
typedef enum _ARBITER_REQUEST_SOURCE {
|
||||||
ArbiterRequestUndefined = -1,
|
ArbiterRequestUndefined = -1,
|
||||||
ArbiterRequestLegacyReported,
|
ArbiterRequestLegacyReported,
|
||||||
|
@ -836,34 +646,6 @@ typedef struct _ARBITER_INTERFACE {
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
} ARBITER_INTERFACE, *PARBITER_INTERFACE;
|
} ARBITER_INTERFACE, *PARBITER_INTERFACE;
|
||||||
|
|
||||||
typedef enum _KPROFILE_SOURCE {
|
|
||||||
ProfileTime,
|
|
||||||
ProfileAlignmentFixup,
|
|
||||||
ProfileTotalIssues,
|
|
||||||
ProfilePipelineDry,
|
|
||||||
ProfileLoadInstructions,
|
|
||||||
ProfilePipelineFrozen,
|
|
||||||
ProfileBranchInstructions,
|
|
||||||
ProfileTotalNonissues,
|
|
||||||
ProfileDcacheMisses,
|
|
||||||
ProfileIcacheMisses,
|
|
||||||
ProfileCacheMisses,
|
|
||||||
ProfileBranchMispredictions,
|
|
||||||
ProfileStoreInstructions,
|
|
||||||
ProfileFpInstructions,
|
|
||||||
ProfileIntegerInstructions,
|
|
||||||
Profile2Issue,
|
|
||||||
Profile3Issue,
|
|
||||||
Profile4Issue,
|
|
||||||
ProfileSpecialInstructions,
|
|
||||||
ProfileTotalCycles,
|
|
||||||
ProfileIcacheIssues,
|
|
||||||
ProfileDcacheAccesses,
|
|
||||||
ProfileMemoryBarrierCycles,
|
|
||||||
ProfileLoadLinkedIssues,
|
|
||||||
ProfileMaximum
|
|
||||||
} KPROFILE_SOURCE;
|
|
||||||
|
|
||||||
typedef enum _HAL_QUERY_INFORMATION_CLASS {
|
typedef enum _HAL_QUERY_INFORMATION_CLASS {
|
||||||
HalInstalledBusInformation,
|
HalInstalledBusInformation,
|
||||||
HalProfileSourceInformation,
|
HalProfileSourceInformation,
|
||||||
|
@ -953,10 +735,6 @@ typedef struct
|
||||||
DEBUG_MEMORY_REQUIREMENTS Memory;
|
DEBUG_MEMORY_REQUIREMENTS Memory;
|
||||||
} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
|
} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
|
||||||
|
|
||||||
typedef enum _KD_OPTION {
|
|
||||||
KD_OPTION_SET_BLOCK_ENABLE,
|
|
||||||
} KD_OPTION;
|
|
||||||
|
|
||||||
/* Function Type Defintions for Dispatch Functions */
|
/* Function Type Defintions for Dispatch Functions */
|
||||||
struct _DEVICE_CONTROL_CONTEXT;
|
struct _DEVICE_CONTROL_CONTEXT;
|
||||||
|
|
||||||
|
@ -1321,54 +1099,6 @@ extern __declspec(dllexport) HAL_DISPATCH HalDispatchTable;
|
||||||
#define HalEndOfBoot HALDISPATCH->HalEndOfBoot
|
#define HalEndOfBoot HALDISPATCH->HalEndOfBoot
|
||||||
#define HalMirrorVerify HALDISPATCH->HalMirrorVerify
|
#define HalMirrorVerify HALDISPATCH->HalMirrorVerify
|
||||||
|
|
||||||
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 {
|
typedef struct _FILE_ALIGNMENT_INFORMATION {
|
||||||
ULONG AlignmentRequirement;
|
ULONG AlignmentRequirement;
|
||||||
} FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION;
|
} FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION;
|
||||||
|
@ -1378,33 +1108,6 @@ typedef struct _FILE_NAME_INFORMATION {
|
||||||
WCHAR FileName[1];
|
WCHAR FileName[1];
|
||||||
} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
|
} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
|
||||||
|
|
||||||
#include <pshpack8.h>
|
|
||||||
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;
|
|
||||||
#include <poppack.h>
|
|
||||||
|
|
||||||
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 {
|
typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
|
||||||
ULONG FileAttributes;
|
ULONG FileAttributes;
|
||||||
|
@ -1428,47 +1131,6 @@ typedef union _FILE_SEGMENT_ELEMENT {
|
||||||
ULONGLONG Alignment;
|
ULONGLONG Alignment;
|
||||||
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
|
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
/* ERESOURCE.Flag */
|
|
||||||
|
|
||||||
#define ResourceNeverExclusive 0x0010
|
|
||||||
#define ResourceReleaseByOtherThread 0x0020
|
|
||||||
#define ResourceOwnedExclusive 0x0080
|
|
||||||
|
|
||||||
#define RESOURCE_HASH_TABLE_SIZE 64
|
|
||||||
|
|
||||||
typedef struct _DEVOBJ_EXTENSION
|
|
||||||
{
|
|
||||||
CSHORT Type;
|
|
||||||
USHORT Size;
|
|
||||||
PDEVICE_OBJECT DeviceObject;
|
|
||||||
} DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
|
|
||||||
|
|
||||||
typedef BOOLEAN
|
typedef BOOLEAN
|
||||||
(DDKAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
|
(DDKAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
|
||||||
IN struct _FILE_OBJECT *FileObject,
|
IN struct _FILE_OBJECT *FileObject,
|
||||||
|
|
Loading…
Reference in a new issue