mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 16:51:39 +00:00
[PSDK/DDK]: Add more missing definitions. Fix classpnp.h.
svn path=/trunk/; revision=48864
This commit is contained in:
parent
7c9e442a28
commit
c0e90cf2dd
3 changed files with 193 additions and 9 deletions
|
@ -41,6 +41,42 @@
|
|||
|
||||
#define IS_SCSIOP_READWRITE(opCode) (IS_SCSIOP_READ(opCode) || IS_SCSIOP_WRITE(opCode))
|
||||
|
||||
#define ADJUST_FUA_FLAG(fdoExt) { \
|
||||
if (TEST_FLAG(fdoExt->DeviceFlags, DEV_WRITE_CACHE) && \
|
||||
!TEST_FLAG(fdoExt->DeviceFlags, DEV_POWER_PROTECTED) && \
|
||||
!TEST_FLAG(fdoExt->ScanForSpecialFlags, CLASS_SPECIAL_FUA_NOT_SUPPORTED) ) { \
|
||||
fdoExt->CdbForceUnitAccess = TRUE; \
|
||||
} else { \
|
||||
fdoExt->CdbForceUnitAccess = FALSE; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define FREE_POOL(_PoolPtr) \
|
||||
if (_PoolPtr != NULL) { \
|
||||
ExFreePool(_PoolPtr); \
|
||||
_PoolPtr = NULL; \
|
||||
}
|
||||
|
||||
#ifdef POOL_TAGGING
|
||||
#undef ExAllocatePool
|
||||
#undef ExAllocatePoolWithQuota
|
||||
#define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b,'nUcS')
|
||||
//#define ExAllocatePool(a,b) #assert(0)
|
||||
#define ExAllocatePoolWithQuota(a,b) ExAllocatePoolWithQuotaTag(a,b,'nUcS')
|
||||
#endif
|
||||
|
||||
#define CLASS_TAG_AUTORUN_DISABLE 'ALcS'
|
||||
#define CLASS_TAG_FILE_OBJECT_EXTENSION 'FLcS'
|
||||
#define CLASS_TAG_MEDIA_CHANGE_DETECTION 'MLcS'
|
||||
#define CLASS_TAG_MOUNT 'mLcS'
|
||||
#define CLASS_TAG_RELEASE_QUEUE 'qLcS'
|
||||
#define CLASS_TAG_POWER 'WLcS'
|
||||
#define CLASS_TAG_WMI 'wLcS'
|
||||
#define CLASS_TAG_FAILURE_PREDICT 'fLcS'
|
||||
#define CLASS_TAG_DEVICE_CONTROL 'OIcS'
|
||||
#define CLASS_TAG_MODE_DATA 'oLcS'
|
||||
#define CLASS_TAG_MULTIPATH 'mPcS'
|
||||
|
||||
#define MAXIMUM_RETRIES 4
|
||||
|
||||
#define CLASS_DRIVER_EXTENSION_KEY ((PVOID) ClassInitialize)
|
||||
|
@ -217,12 +253,9 @@ typedef struct _CLASS_PRIVATE_COMMON_DATA CLASS_PRIVATE_COMMON_DATA, *PCLASS_PRI
|
|||
struct _MEDIA_CHANGE_DETECTION_INFO;
|
||||
typedef struct _MEDIA_CHANGE_DETECTION_INFO MEDIA_CHANGE_DETECTION_INFO, *PMEDIA_CHANGE_DETECTION_INFO;
|
||||
|
||||
struct _DICTIONARY_HEADER;
|
||||
typedef struct _DICTIONARY_HEADER DICTIONARY_HEADER, *PDICTIONARY_HEADER;
|
||||
|
||||
typedef struct _DICTIONARY {
|
||||
ULONGLONG Signature;
|
||||
PDICTIONARY_HEADER List;
|
||||
struct _DICTIONARY_HEADER* List;
|
||||
KSPIN_LOCK SpinLock;
|
||||
} DICTIONARY, *PDICTIONARY;
|
||||
|
||||
|
@ -558,9 +591,6 @@ typedef struct _PHYSICAL_DEVICE_EXTENSION {
|
|||
ULONG_PTR Reserved4;
|
||||
} PHYSICAL_DEVICE_EXTENSION, *PPHYSICAL_DEVICE_EXTENSION;
|
||||
|
||||
struct _FAILURE_PREDICTION_INFO;
|
||||
typedef struct _FAILURE_PREDICTION_INFO *PFAILURE_PREDICTION_INFO;
|
||||
|
||||
typedef struct _CLASS_POWER_OPTIONS {
|
||||
ULONG PowerDown:1;
|
||||
ULONG LockQueue:1;
|
||||
|
@ -652,7 +682,7 @@ typedef struct _FUNCTIONAL_DEVICE_EXTENSION {
|
|||
BOOLEAN ReleaseQueueIrpFromPool;
|
||||
BOOLEAN FailurePredicted;
|
||||
ULONG FailureReason;
|
||||
PFAILURE_PREDICTION_INFO FailurePredictionInfo;
|
||||
struct _FAILURE_PREDICTION_INFO* FailurePredictionInfo;
|
||||
BOOLEAN PowerDownInProgress;
|
||||
ULONG EnumerationInterlock;
|
||||
KEVENT ChildLock;
|
||||
|
@ -733,6 +763,14 @@ ClassDeviceControl(
|
|||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp);
|
||||
|
||||
SCSIPORTAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ClassIoComplete(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Context);
|
||||
|
||||
SCSIPORTAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
@ -848,7 +886,7 @@ NTAPI
|
|||
ClassGetDescriptor(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PSTORAGE_PROPERTY_ID PropertyId,
|
||||
PVOID *Descriptor);
|
||||
PSTORAGE_DESCRIPTOR_HEADER *Descriptor);
|
||||
|
||||
SCSIPORTAPI
|
||||
VOID
|
||||
|
@ -1007,6 +1045,13 @@ NTAPI
|
|||
ClassReleaseChildLock(
|
||||
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ClassSignalCompletion(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PKEVENT Event);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
ClassSendStartUnit(
|
||||
|
@ -1019,12 +1064,28 @@ ClassRemoveDevice(
|
|||
PDEVICE_OBJECT DeviceObject,
|
||||
UCHAR RemoveType);
|
||||
|
||||
SCSIPORTAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ClassAsynchronousCompletion(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Event);
|
||||
|
||||
SCSIPORTAPI
|
||||
VOID
|
||||
NTAPI
|
||||
ClassCheckMediaState(
|
||||
PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||
|
||||
SCSIPORTAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ClassCheckVerifyComplete(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Context);
|
||||
|
||||
SCSIPORTAPI
|
||||
VOID
|
||||
NTAPI
|
||||
|
|
|
@ -617,6 +617,12 @@ typedef struct _GROUP_AFFINITY {
|
|||
|
||||
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||
|
||||
#define RTL_SIZEOF_THROUGH_FIELD(type, field) \
|
||||
(FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
|
||||
|
||||
#define RTL_CONTAINS_FIELD(Struct, Size, Field) \
|
||||
( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) )
|
||||
|
||||
#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0]))
|
||||
#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A)
|
||||
#ifdef ENABLE_RTL_NUMBER_OF_V2
|
||||
|
|
|
@ -25,6 +25,123 @@ typedef struct _WNODE_HEADER
|
|||
ULONG Flags;
|
||||
} WNODE_HEADER, *PWNODE_HEADER;
|
||||
|
||||
#define WNODE_FLAG_ALL_DATA 0x00000001
|
||||
#define WNODE_FLAG_SINGLE_INSTANCE 0x00000002
|
||||
#define WNODE_FLAG_SINGLE_ITEM 0x00000004
|
||||
#define WNODE_FLAG_EVENT_ITEM 0x00000008
|
||||
#define WNODE_FLAG_FIXED_INSTANCE_SIZE 0x00000010
|
||||
#define WNODE_FLAG_TOO_SMALL 0x00000020
|
||||
#define WNODE_FLAG_INSTANCES_SAME 0x00000040
|
||||
#define WNODE_FLAG_STATIC_INSTANCE_NAMES 0x00000080
|
||||
#define WNODE_FLAG_INTERNAL 0x00000100
|
||||
#define WNODE_FLAG_USE_TIMESTAMP 0x00000200
|
||||
#define WNODE_FLAG_PERSIST_EVENT 0x00000400
|
||||
#define WNODE_FLAG_EVENT_REFERENCE 0x00002000
|
||||
#define WNODE_FLAG_ANSI_INSTANCENAMES 0x00004000
|
||||
#define WNODE_FLAG_METHOD_ITEM 0x00008000
|
||||
#define WNODE_FLAG_PDO_INSTANCE_NAMES 0x00010000
|
||||
#define WNODE_FLAG_TRACED_GUID 0x00020000
|
||||
#define WNODE_FLAG_LOG_WNODE 0x00040000
|
||||
#define WNODE_FLAG_USE_GUID_PTR 0x00080000
|
||||
#define WNODE_FLAG_USE_MOF_PTR 0x00100000
|
||||
#define WNODE_FLAG_NO_HEADER 0x00200000
|
||||
#define WNODE_FLAG_SEVERITY_MASK 0xff000000
|
||||
|
||||
typedef struct tagWNODE_TOO_SMALL
|
||||
{
|
||||
struct _WNODE_HEADER WnodeHeader;
|
||||
ULONG SizeNeeded;
|
||||
} WNODE_TOO_SMALL, *PWNODE_TOO_SMALL;
|
||||
|
||||
typedef struct tagWNODE_SINGLE_INSTANCE
|
||||
{
|
||||
struct _WNODE_HEADER WnodeHeader;
|
||||
ULONG OffsetInstanceName;
|
||||
ULONG InstanceIndex;
|
||||
ULONG DataBlockOffset;
|
||||
ULONG SizeDataBlock;
|
||||
UCHAR VariableData[];
|
||||
} WNODE_SINGLE_INSTANCE, *PWNODE_SINGLE_INSTANCE;
|
||||
|
||||
#define WMIREG_FLAG_EXPENSIVE 0x00000001
|
||||
#define WMIREG_FLAG_INSTANCE_LIST 0x00000004
|
||||
#define WMIREG_FLAG_INSTANCE_BASENAME 0x00000008
|
||||
#define WMIREG_FLAG_INSTANCE_PDO 0x00000020
|
||||
#define WMIREG_FLAG_REMOVE_GUID 0x00010000
|
||||
#define WMIREG_FLAG_RESERVED1 0x00020000
|
||||
#define WMIREG_FLAG_RESERVED2 0x00040000
|
||||
#define WMIREG_FLAG_TRACED_GUID 0x00080000
|
||||
#define WMIREG_FLAG_TRACE_CONTROL_GUID 0x00001000
|
||||
#define WMIREG_FLAG_EVENT_ONLY_GUID 0x00000040
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GUID Guid;
|
||||
ULONG Flags;
|
||||
ULONG InstanceCount;
|
||||
union
|
||||
{
|
||||
ULONG InstanceNameList;
|
||||
ULONG BaseNameOffset;
|
||||
ULONG_PTR Pdo;
|
||||
ULONG_PTR InstanceInfo;
|
||||
};
|
||||
} WMIREGGUIDW, *PWMIREGGUIDW;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG BufferSize;
|
||||
ULONG NextWmiRegInfo;
|
||||
ULONG RegistryPath;
|
||||
ULONG MofResourceName;
|
||||
ULONG GuidCount;
|
||||
WMIREGGUIDW WmiRegGuid[];
|
||||
} WMIREGINFOW, *PWMIREGINFOW;
|
||||
|
||||
typedef WMIREGINFOW WMIREGINFO;
|
||||
typedef PWMIREGINFOW PWMIREGINFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG OffsetInstanceData;
|
||||
ULONG LengthInstanceData;
|
||||
} OFFSETINSTANCEDATAANDLENGTH, *POFFSETINSTANCEDATAANDLENGTH;
|
||||
|
||||
typedef struct tagWNODE_ALL_DATA
|
||||
{
|
||||
struct _WNODE_HEADER WnodeHeader;
|
||||
ULONG DataBlockOffset;
|
||||
ULONG InstanceCount;
|
||||
ULONG OffsetInstanceNameOffsets;
|
||||
union
|
||||
{
|
||||
ULONG FixedInstanceSize;
|
||||
OFFSETINSTANCEDATAANDLENGTH OffsetInstanceDataAndLength[0];
|
||||
};
|
||||
} WNODE_ALL_DATA, *PWNODE_ALL_DATA;
|
||||
|
||||
typedef struct tagWNODE_SINGLE_ITEM
|
||||
{
|
||||
struct _WNODE_HEADER WnodeHeader;
|
||||
ULONG OffsetInstanceName;
|
||||
ULONG InstanceIndex;
|
||||
ULONG ItemId;
|
||||
ULONG DataBlockOffset;
|
||||
ULONG SizeDataItem;
|
||||
UCHAR VariableData[];
|
||||
} WNODE_SINGLE_ITEM, *PWNODE_SINGLE_ITEM;
|
||||
|
||||
typedef struct tagWNODE_METHOD_ITEM
|
||||
{
|
||||
struct _WNODE_HEADER WnodeHeader;
|
||||
ULONG OffsetInstanceName;
|
||||
ULONG InstanceIndex;
|
||||
ULONG MethodId;
|
||||
ULONG DataBlockOffset;
|
||||
ULONG SizeDataBlock;
|
||||
UCHAR VariableData[];
|
||||
} WNODE_METHOD_ITEM, *PWNODE_METHOD_ITEM;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
WMI_GET_ALL_DATA = 0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue