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 */