mirror of
https://github.com/reactos/reactos.git
synced 2024-07-04 11:44:33 +00:00
- Move more stuff to wdm.h
- Group some related definitions - Add IO_TYPE_CSQ_EX - Add some missing _KEY_SET_INFORMATION_CLASS members - KeyUserFlagsInformation -> KeyWow64FlagsInformation svn path=/branches/header-work/; revision=45741
This commit is contained in:
parent
f3ace5a587
commit
44e57fdff5
1557
include/ddk/wdm.h
1557
include/ddk/wdm.h
File diff suppressed because it is too large
Load diff
|
@ -407,19 +407,6 @@ typedef VOID
|
|||
IN PVOID Context,
|
||||
IN ULONG Count);
|
||||
|
||||
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 BOOLEAN
|
||||
(DDKAPI *PKTRANSFER_ROUTINE)(
|
||||
VOID);
|
||||
|
@ -1133,405 +1120,10 @@ typedef union _FILE_SEGMENT_ELEMENT {
|
|||
|
||||
#define SE_UNSOLICITED_INPUT_PRIVILEGE 6
|
||||
|
||||
#include <pshpack4.h>
|
||||
typedef struct _ACCESS_STATE {
|
||||
LUID OperationID;
|
||||
BOOLEAN SecurityEvaluated;
|
||||
BOOLEAN GenerateAudit;
|
||||
BOOLEAN GenerateOnClose;
|
||||
BOOLEAN PrivilegesAllocated;
|
||||
ULONG Flags;
|
||||
ACCESS_MASK RemainingDesiredAccess;
|
||||
ACCESS_MASK PreviouslyGrantedAccess;
|
||||
ACCESS_MASK OriginalDesiredAccess;
|
||||
SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
PVOID AuxData;
|
||||
union {
|
||||
INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
|
||||
PRIVILEGE_SET PrivilegeSet;
|
||||
} Privileges;
|
||||
|
||||
BOOLEAN AuditPrivileges;
|
||||
UNICODE_STRING ObjectName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
} ACCESS_STATE, *PACCESS_STATE;
|
||||
#include <poppack.h>
|
||||
|
||||
typedef struct _IO_SECURITY_CONTEXT {
|
||||
PSECURITY_QUALITY_OF_SERVICE SecurityQos;
|
||||
PACCESS_STATE AccessState;
|
||||
ACCESS_MASK DesiredAccess;
|
||||
ULONG FullCreateOptions;
|
||||
} IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;
|
||||
|
||||
#define IO_TYPE_ADAPTER 1
|
||||
#define IO_TYPE_CONTROLLER 2
|
||||
#define IO_TYPE_DEVICE 3
|
||||
#define IO_TYPE_DRIVER 4
|
||||
#define IO_TYPE_FILE 5
|
||||
#define IO_TYPE_IRP 6
|
||||
#define IO_TYPE_MASTER_ADAPTER 7
|
||||
#define IO_TYPE_OPEN_PACKET 8
|
||||
#define IO_TYPE_TIMER 9
|
||||
#define IO_TYPE_VPB 10
|
||||
#define IO_TYPE_ERROR_LOG 11
|
||||
#define IO_TYPE_ERROR_MESSAGE 12
|
||||
#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13
|
||||
|
||||
#define IO_TYPE_CSQ_IRP_CONTEXT 1
|
||||
#define IO_TYPE_CSQ 2
|
||||
|
||||
struct _IO_CSQ;
|
||||
|
||||
typedef struct _IO_CSQ_IRP_CONTEXT {
|
||||
ULONG Type;
|
||||
struct _IRP *Irp;
|
||||
struct _IO_CSQ *Csq;
|
||||
} IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT;
|
||||
|
||||
typedef VOID
|
||||
(DDKAPI *PIO_CSQ_INSERT_IRP)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef VOID
|
||||
(DDKAPI *PIO_CSQ_REMOVE_IRP)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef PIRP
|
||||
(DDKAPI *PIO_CSQ_PEEK_NEXT_IRP)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
IN PIRP Irp,
|
||||
IN PVOID PeekContext);
|
||||
|
||||
typedef VOID
|
||||
(DDKAPI *PIO_CSQ_ACQUIRE_LOCK)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
OUT PKIRQL Irql);
|
||||
|
||||
typedef VOID
|
||||
(DDKAPI *PIO_CSQ_RELEASE_LOCK)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
IN KIRQL Irql);
|
||||
|
||||
typedef VOID
|
||||
(DDKAPI *PIO_CSQ_COMPLETE_CANCELED_IRP)(
|
||||
IN struct _IO_CSQ *Csq,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef struct _IO_CSQ {
|
||||
ULONG Type;
|
||||
PIO_CSQ_INSERT_IRP CsqInsertIrp;
|
||||
PIO_CSQ_REMOVE_IRP CsqRemoveIrp;
|
||||
PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp;
|
||||
PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock;
|
||||
PIO_CSQ_RELEASE_LOCK CsqReleaseLock;
|
||||
PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp;
|
||||
PVOID ReservePointer;
|
||||
} IO_CSQ, *PIO_CSQ;
|
||||
|
||||
#if !defined(_ALPHA_)
|
||||
#include <pshpack4.h>
|
||||
#endif
|
||||
typedef struct _IO_STACK_LOCATION {
|
||||
UCHAR MajorFunction;
|
||||
UCHAR MinorFunction;
|
||||
UCHAR Flags;
|
||||
UCHAR Control;
|
||||
union {
|
||||
struct {
|
||||
PIO_SECURITY_CONTEXT SecurityContext;
|
||||
ULONG Options;
|
||||
USHORT POINTER_ALIGNMENT FileAttributes;
|
||||
USHORT ShareAccess;
|
||||
ULONG POINTER_ALIGNMENT EaLength;
|
||||
} Create;
|
||||
struct {
|
||||
ULONG Length;
|
||||
ULONG POINTER_ALIGNMENT Key;
|
||||
LARGE_INTEGER ByteOffset;
|
||||
} Read;
|
||||
struct {
|
||||
ULONG Length;
|
||||
ULONG POINTER_ALIGNMENT Key;
|
||||
LARGE_INTEGER ByteOffset;
|
||||
} Write;
|
||||
struct {
|
||||
ULONG Length;
|
||||
PUNICODE_STRING FileName;
|
||||
FILE_INFORMATION_CLASS FileInformationClass;
|
||||
ULONG FileIndex;
|
||||
} QueryDirectory;
|
||||
struct {
|
||||
ULONG Length;
|
||||
ULONG CompletionFilter;
|
||||
} NotifyDirectory;
|
||||
struct {
|
||||
ULONG Length;
|
||||
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
|
||||
} QueryFile;
|
||||
struct {
|
||||
ULONG Length;
|
||||
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
|
||||
PFILE_OBJECT FileObject;
|
||||
_ANONYMOUS_UNION union {
|
||||
_ANONYMOUS_STRUCT struct {
|
||||
BOOLEAN ReplaceIfExists;
|
||||
BOOLEAN AdvanceOnly;
|
||||
} DUMMYSTRUCTNAME;
|
||||
ULONG ClusterCount;
|
||||
HANDLE DeleteHandle;
|
||||
} DUMMYUNIONNAME;
|
||||
} SetFile;
|
||||
struct {
|
||||
ULONG Length;
|
||||
PVOID EaList;
|
||||
ULONG EaListLength;
|
||||
ULONG EaIndex;
|
||||
} QueryEa;
|
||||
struct {
|
||||
ULONG Length;
|
||||
} SetEa;
|
||||
struct {
|
||||
ULONG Length;
|
||||
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass;
|
||||
} QueryVolume;
|
||||
struct {
|
||||
ULONG Length;
|
||||
FS_INFORMATION_CLASS FsInformationClass;
|
||||
} SetVolume;
|
||||
struct {
|
||||
ULONG OutputBufferLength;
|
||||
ULONG InputBufferLength;
|
||||
ULONG FsControlCode;
|
||||
PVOID Type3InputBuffer;
|
||||
} FileSystemControl;
|
||||
struct {
|
||||
PLARGE_INTEGER Length;
|
||||
ULONG Key;
|
||||
LARGE_INTEGER ByteOffset;
|
||||
} LockControl;
|
||||
struct {
|
||||
ULONG OutputBufferLength;
|
||||
ULONG POINTER_ALIGNMENT InputBufferLength;
|
||||
ULONG POINTER_ALIGNMENT IoControlCode;
|
||||
PVOID Type3InputBuffer;
|
||||
} DeviceIoControl;
|
||||
struct {
|
||||
SECURITY_INFORMATION SecurityInformation;
|
||||
ULONG POINTER_ALIGNMENT Length;
|
||||
} QuerySecurity;
|
||||
struct {
|
||||
SECURITY_INFORMATION SecurityInformation;
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
} SetSecurity;
|
||||
struct {
|
||||
PVPB Vpb;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
} MountVolume;
|
||||
struct {
|
||||
PVPB Vpb;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
} VerifyVolume;
|
||||
struct {
|
||||
struct _SCSI_REQUEST_BLOCK *Srb;
|
||||
} Scsi;
|
||||
struct {
|
||||
ULONG Length;
|
||||
PSID StartSid;
|
||||
struct _FILE_GET_QUOTA_INFORMATION *SidList;
|
||||
ULONG SidListLength;
|
||||
} QueryQuota;
|
||||
struct {
|
||||
ULONG Length;
|
||||
} SetQuota;
|
||||
struct {
|
||||
DEVICE_RELATION_TYPE Type;
|
||||
} QueryDeviceRelations;
|
||||
struct {
|
||||
CONST GUID *InterfaceType;
|
||||
USHORT Size;
|
||||
USHORT Version;
|
||||
PINTERFACE Interface;
|
||||
PVOID InterfaceSpecificData;
|
||||
} QueryInterface;
|
||||
struct {
|
||||
PDEVICE_CAPABILITIES Capabilities;
|
||||
} DeviceCapabilities;
|
||||
struct {
|
||||
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
|
||||
} FilterResourceRequirements;
|
||||
struct {
|
||||
ULONG WhichSpace;
|
||||
PVOID Buffer;
|
||||
ULONG Offset;
|
||||
ULONG POINTER_ALIGNMENT Length;
|
||||
} ReadWriteConfig;
|
||||
struct {
|
||||
BOOLEAN Lock;
|
||||
} SetLock;
|
||||
struct {
|
||||
BUS_QUERY_ID_TYPE IdType;
|
||||
} QueryId;
|
||||
struct {
|
||||
DEVICE_TEXT_TYPE DeviceTextType;
|
||||
LCID POINTER_ALIGNMENT LocaleId;
|
||||
} QueryDeviceText;
|
||||
struct {
|
||||
BOOLEAN InPath;
|
||||
BOOLEAN Reserved[3];
|
||||
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type;
|
||||
} UsageNotification;
|
||||
struct {
|
||||
SYSTEM_POWER_STATE PowerState;
|
||||
} WaitWake;
|
||||
struct {
|
||||
PPOWER_SEQUENCE PowerSequence;
|
||||
} PowerSequence;
|
||||
struct {
|
||||
ULONG SystemContext;
|
||||
POWER_STATE_TYPE POINTER_ALIGNMENT Type;
|
||||
POWER_STATE POINTER_ALIGNMENT State;
|
||||
POWER_ACTION POINTER_ALIGNMENT ShutdownType;
|
||||
} Power;
|
||||
struct {
|
||||
PCM_RESOURCE_LIST AllocatedResources;
|
||||
PCM_RESOURCE_LIST AllocatedResourcesTranslated;
|
||||
} StartDevice;
|
||||
struct {
|
||||
ULONG_PTR ProviderId;
|
||||
PVOID DataPath;
|
||||
ULONG BufferSize;
|
||||
PVOID Buffer;
|
||||
} WMI;
|
||||
struct {
|
||||
PVOID Argument1;
|
||||
PVOID Argument2;
|
||||
PVOID Argument3;
|
||||
PVOID Argument4;
|
||||
} Others;
|
||||
} Parameters;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
PFILE_OBJECT FileObject;
|
||||
PIO_COMPLETION_ROUTINE CompletionRoutine;
|
||||
PVOID Context;
|
||||
} IO_STACK_LOCATION, *PIO_STACK_LOCATION;
|
||||
#if !defined(_ALPHA_)
|
||||
#include <poppack.h>
|
||||
#endif
|
||||
|
||||
/* IO_STACK_LOCATION.Control */
|
||||
|
||||
#define SL_PENDING_RETURNED 0x01
|
||||
#define SL_ERROR_RETURNED 0x02
|
||||
#define SL_INVOKE_ON_CANCEL 0x20
|
||||
#define SL_INVOKE_ON_SUCCESS 0x40
|
||||
#define SL_INVOKE_ON_ERROR 0x80
|
||||
|
||||
/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
|
||||
|
||||
#define PCI_WHICHSPACE_CONFIG 0x0
|
||||
#define PCI_WHICHSPACE_ROM 0x52696350 /* 'PciR' */
|
||||
|
||||
typedef enum _KEY_INFORMATION_CLASS {
|
||||
KeyBasicInformation,
|
||||
KeyNodeInformation,
|
||||
KeyFullInformation,
|
||||
KeyNameInformation,
|
||||
KeyCachedInformation,
|
||||
KeyFlagsInformation
|
||||
} KEY_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _KEY_BASIC_INFORMATION {
|
||||
LARGE_INTEGER LastWriteTime;
|
||||
ULONG TitleIndex;
|
||||
ULONG NameLength;
|
||||
WCHAR Name[1];
|
||||
} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _KEY_FULL_INFORMATION {
|
||||
LARGE_INTEGER LastWriteTime;
|
||||
ULONG TitleIndex;
|
||||
ULONG ClassOffset;
|
||||
ULONG ClassLength;
|
||||
ULONG SubKeys;
|
||||
ULONG MaxNameLen;
|
||||
ULONG MaxClassLen;
|
||||
ULONG Values;
|
||||
ULONG MaxValueNameLen;
|
||||
ULONG MaxValueDataLen;
|
||||
WCHAR Class[1];
|
||||
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
|
||||
|
||||
typedef struct _KEY_NODE_INFORMATION {
|
||||
LARGE_INTEGER LastWriteTime;
|
||||
ULONG TitleIndex;
|
||||
ULONG ClassOffset;
|
||||
ULONG ClassLength;
|
||||
ULONG NameLength;
|
||||
WCHAR Name[1];
|
||||
} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VALUE_BASIC_INFORMATION {
|
||||
ULONG TitleIndex;
|
||||
ULONG Type;
|
||||
ULONG NameLength;
|
||||
WCHAR Name[1];
|
||||
} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VALUE_FULL_INFORMATION {
|
||||
ULONG TitleIndex;
|
||||
ULONG Type;
|
||||
ULONG DataOffset;
|
||||
ULONG DataLength;
|
||||
ULONG NameLength;
|
||||
WCHAR Name[1];
|
||||
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
|
||||
ULONG TitleIndex;
|
||||
ULONG Type;
|
||||
ULONG DataLength;
|
||||
UCHAR Data[1];
|
||||
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
||||
|
||||
typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
|
||||
ULONG Type;
|
||||
ULONG DataLength;
|
||||
UCHAR Data[1];
|
||||
} KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
|
||||
|
||||
typedef struct _KEY_VALUE_ENTRY {
|
||||
PUNICODE_STRING ValueName;
|
||||
ULONG DataLength;
|
||||
ULONG DataOffset;
|
||||
ULONG Type;
|
||||
} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
|
||||
|
||||
typedef enum _KEY_VALUE_INFORMATION_CLASS {
|
||||
KeyValueBasicInformation,
|
||||
KeyValueFullInformation,
|
||||
KeyValuePartialInformation,
|
||||
KeyValueFullInformationAlign64,
|
||||
KeyValuePartialInformationAlign64
|
||||
} KEY_VALUE_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _KEY_WRITE_TIME_INFORMATION {
|
||||
LARGE_INTEGER LastWriteTime;
|
||||
} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
|
||||
|
||||
typedef struct _KEY_USER_FLAGS_INFORMATION {
|
||||
ULONG UserFlags;
|
||||
} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION;
|
||||
|
||||
typedef enum _KEY_SET_INFORMATION_CLASS {
|
||||
KeyWriteTimeInformation,
|
||||
KeyUserFlagsInformation,
|
||||
MaxKeySetInfoClass
|
||||
} KEY_SET_INFORMATION_CLASS;
|
||||
|
||||
/* KEY_VALUE_Xxx.Type */
|
||||
|
||||
#define REG_NONE 0
|
||||
|
|
|
@ -142,11 +142,14 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS
|
|||
KeyValuePartialInformationAlign64
|
||||
} KEY_VALUE_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _KEY_SET_INFORMATION_CLASS
|
||||
{
|
||||
KeyWriteTimeInformation,
|
||||
KeyUserFlagsInformation,
|
||||
MaxKeySetInfoClass
|
||||
typedef enum _KEY_SET_INFORMATION_CLASS {
|
||||
KeyWriteTimeInformation,
|
||||
KeyWow64FlagsInformation,
|
||||
KeyControlFlagsInformation,
|
||||
KeySetVirtualizationInformation,
|
||||
KeySetDebugInformation,
|
||||
KeySetHandleTagsInformation,
|
||||
MaxKeySetInfoClass
|
||||
} KEY_SET_INFORMATION_CLASS;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue