1 #ifndef __INCLUDE_DDK_POTYPES_H
2 #define __INCLUDE_DDK_POTYPES_H
5 struct _IO_STATUS_BLOCK
;
7 // Flags for PoSetSystemState
8 typedef ULONG EXECUTION_STATE
;
10 #define ES_SYSTEM_REQUIRED ((EXECUTION_STATE)0x00000001)
11 #define ES_DISPLAY_REQUIRED ((EXECUTION_STATE)0x00000002)
12 #define ES_USER_PRESENT ((EXECUTION_STATE)0x00000004)
13 #define ES_CONTINUOUS ((EXECUTION_STATE)0x80000000)
15 // PowerState for PoRequestPowerIrp
16 typedef enum _SYSTEM_POWER_STATE
{
17 PowerSystemUnspecified
= 0,
25 } SYSTEM_POWER_STATE
, *PSYSTEM_POWER_STATE
;
27 // Values for IRP_MN_QUERY_POWER/IRP_MN_SET_POWER
34 PowerActionShutdownReset
,
35 PowerActionShutdownOff
,
37 } POWER_ACTION
, *PPOWER_ACTION
;
39 // State for PoRegisterDeviceForIdleDetection
40 typedef enum _DEVICE_POWER_STATE
{
41 PowerDeviceUnspecified
= 0,
47 } DEVICE_POWER_STATE
, *PDEVICE_POWER_STATE
;
49 // State for PoSetPowerState
50 typedef union _POWER_STATE
{
51 SYSTEM_POWER_STATE SystemState
;
52 DEVICE_POWER_STATE DeviceState
;
53 } POWER_STATE
, *PPOWER_STATE
;
55 // Type for PoSetPowerState
56 typedef enum _POWER_STATE_TYPE
{
59 } POWER_STATE_TYPE
, *PPOWER_STATE_TYPE
;
61 // CompletionFunction for PoRequestPowerIrp
62 typedef VOID STDCALL_FUNC
63 (*PREQUEST_POWER_COMPLETE
) (
64 IN
struct _DEVICE_OBJECT
*DeviceObject
,
65 IN UCHAR MinorFunction
,
66 IN POWER_STATE PowerState
,
68 IN
struct _IO_STATUS_BLOCK
*IoStatus
);
71 typedef struct _POWER_SEQUENCE
{
75 } POWER_SEQUENCE
, *PPOWER_SEQUENCE
;
77 typedef VOID
STDCALL_FUNC (*PINTERFACE_REFERENCE
)(PVOID Context
);
78 typedef VOID
STDCALL_FUNC (*PINTERFACE_DEREFERENCE
)(PVOID Context
);
80 typedef struct _INTERFACE
{
84 PINTERFACE_REFERENCE InterfaceReference
;
85 PINTERFACE_DEREFERENCE InterfaceDereference
;
86 } INTERFACE
, *PINTERFACE
;
90 BusQueryHardwareIDs
= 1,
91 BusQueryCompatibleIDs
= 2,
92 BusQueryInstanceID
= 3,
93 BusQueryDeviceSerialNumber
= 4
94 } BUS_QUERY_ID_TYPE
, *PBUS_QUERY_ID_TYPE
;
97 DeviceTextDescription
= 0,
98 DeviceTextLocationInformation
= 1
99 } DEVICE_TEXT_TYPE
, *PDEVICE_TEXT_TYPE
;
101 #endif /* __INCLUDE_DDK_POTYPES_H */