ReactOS 0.4.16-dev-1273-g5b94656
acpisys.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS ACPI bus driver
3 * FILE: acpi/ospm/include/acpisys.h
4 * PURPOSE: ACPI bus driver definitions
5 */
6
10
11typedef enum _DEVICE_PNP_STATE {
12
13 NotStarted = 0, // Not started yet
14 Started, // Device has received the START_DEVICE IRP
15 StopPending, // Device has received the QUERY_STOP IRP
16 Stopped, // Device has received the STOP_DEVICE IRP
17 RemovalPending, // Device has received the QUERY_REMOVE IRP
18 UnKnown // Unknown state
19
21
22//
23// A common header for the device extensions of the PDOs and FDO
24//
25
26typedef struct _COMMON_DEVICE_DATA
27{
35
36typedef struct _PDO_DEVICE_DATA
37{
40 // A back pointer to the bus
42 // An array of (zero terminated wide character strings).
43 // The array itself also null terminated
46 // Link point to hold all the PDOs for a single bus together
50
52
53//
54// The device extension of the bus itself. From whence the PDO's are born.
55//
56
57typedef struct _FDO_DEVICE_DATA
58{
61
62 // The underlying bus PDO and the actual device object to which our
63 // FDO is attached
65
66 // List of PDOs created so far
68
69 // The PDOs currently enumerated.
71
72 // A synchronization for access to the device extension.
74
76
77#define FDO_FROM_PDO(pdoData) \
78 ((PFDO_DEVICE_DATA) (pdoData)->ParentFdo->DeviceExtension)
79
80#define INITIALIZE_PNP_STATE(_Data_) \
81 (_Data_).DevicePnPState = NotStarted;\
82 (_Data_).PreviousPnPState = NotStarted;
83
84#define SET_NEW_PNP_STATE(_Data_, _state_) \
85 (_Data_).PreviousPnPState = (_Data_).DevicePnPState;\
86 (_Data_).DevicePnPState = (_state_);
87
88#define RESTORE_PREVIOUS_PNP_STATE(_Data_) \
89 (_Data_).DevicePnPState = (_Data_).PreviousPnPState;\
90
91/* acpienum.c */
92
95 PFDO_DEVICE_DATA DeviceExtension);
96
102
104NTAPI
107 PIRP Irp
108 );
109
110VOID
113 );
114
115PCHAR
118);
119
123 PIRP Irp
124 );
125
127NTAPI
128Bus_PnP (
130 PIRP Irp
131 );
132
134NTAPI
137 PIRP Irp,
139 );
140
141VOID
144 PFDO_DEVICE_DATA FdoData
145 );
146
147
148void
150 PFDO_DEVICE_DATA FdoData
151 );
152
156 PPDO_DEVICE_DATA PdoData
157 );
158
159
163 PIRP Irp,
164 PIO_STACK_LOCATION IrpStack,
166 );
167
168
171 PFDO_DEVICE_DATA FdoData,
172 PIRP Irp );
173
174PCHAR
177 );
178
179PCHAR
182 );
183
186 PFDO_DEVICE_DATA FdoData,
187 PIRP Irp
188 );
189
192 PPDO_DEVICE_DATA PdoData,
193 PIRP Irp
194 );
195
197NTAPI
198Bus_Power (
200 PIRP Irp
201 );
202
203PCHAR
206);
207
208PCHAR
211 );
212
213PCHAR
216 );
217
221 PIRP Irp,
222 PIO_STACK_LOCATION IrpStack,
224 );
225
229 PIRP Irp );
230
234 PIRP Irp );
235
236
240 PIRP Irp );
241
245 PIRP Irp );
246
250 PIRP Irp );
251
255 PIRP Irp );
256
260 PIRP Irp );
261
266 );
267
271 PIRP Irp );
272
277 );
282 );
286 );
287VOID
290 );
291VOID
294 );
295
296/* EOF */
unsigned char BOOLEAN
Type
Definition: Type.h:7
NTSTATUS Bus_DestroyPdo(PDEVICE_OBJECT Device, PPDO_DEVICE_DATA PdoData)
Definition: pnp.c:390
NTSTATUS Bus_FDO_Power(PFDO_DEVICE_DATA FdoData, PIRP Irp)
Definition: power.c:49
NTSTATUS Bus_PDO_PnP(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpStack, PPDO_DEVICE_DATA DeviceData)
Definition: buspdo.c:23
_DEVICE_PNP_STATE
Definition: acpisys.h:11
@ Stopped
Definition: acpisys.h:16
@ NotStarted
Definition: acpisys.h:13
@ RemovalPending
Definition: acpisys.h:17
@ StopPending
Definition: acpisys.h:15
@ UnKnown
Definition: acpisys.h:18
@ Started
Definition: acpisys.h:14
struct _COMMON_DEVICE_DATA * PCOMMON_DEVICE_DATA
NTSTATUS Bus_PDO_Power(PPDO_DEVICE_DATA PdoData, PIRP Irp)
Definition: power.c:116
VOID Bus_InterfaceReference(PVOID Context)
NTSTATUS Bus_PDO_QueryResources(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:806
NTSTATUS NTAPI Bus_CreateClose(PDEVICE_OBJECT DeviceObject, PIRP Irp)
LPWSTR ProcessorIdString
Definition: main.c:18
PCHAR DbgSystemPowerString(SYSTEM_POWER_STATE Type)
PCHAR DbgDeviceRelationString(DEVICE_RELATION_TYPE Type)
enum _DEVICE_PNP_STATE DEVICE_PNP_STATE
VOID Bus_InitializePdo(PDEVICE_OBJECT Pdo, PFDO_DEVICE_DATA FdoData)
Definition: pnp.c:417
NTSTATUS Bus_PDO_QueryDeviceRelations(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:1834
NTSTATUS NTAPI Bus_PDO_EvalMethod(_In_ PPDO_DEVICE_DATA DeviceData, _Inout_ PIRP Irp)
Definition: eval.c:765
PCHAR DbgDeviceIDString(BUS_QUERY_ID_TYPE Type)
PCHAR PnPMinorFunctionString(UCHAR MinorFunction)
Definition: fbtpnp.c:1831
void Bus_RemoveFdo(PFDO_DEVICE_DATA FdoData)
PCHAR PowerMinorFunctionString(UCHAR MinorFunction)
BOOLEAN Bus_IsSafetyLockEnabled(PVOID Context)
NTSTATUS Bus_PDO_QueryDeviceText(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:693
BOOLEAN Bus_GetCrispinessLevel(PVOID Context, PUCHAR Level)
NTSTATUS Bus_PDO_QueryDeviceId(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:445
NTSTATUS Bus_PDO_QueryInterface(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: interface.c:94
UNICODE_STRING ProcessorHardwareIds
Definition: main.c:17
VOID Bus_DriverUnload(PDRIVER_OBJECT DriverObject)
VOID Bus_InterfaceDereference(PVOID Context)
struct _FDO_DEVICE_DATA * PFDO_DEVICE_DATA
NTSTATUS Bus_FDO_PnP(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpStack, PFDO_DEVICE_DATA DeviceData)
Definition: pnp.c:72
BOOLEAN Bus_SetCrispinessLevel(PVOID Context, UCHAR Level)
struct _FDO_DEVICE_DATA FDO_DEVICE_DATA
NTSTATUS Bus_SendIrpSynchronously(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: pnp.c:322
NTSTATUS NTAPI Bus_Power(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: power.c:8
struct _PDO_DEVICE_DATA PDO_DEVICE_DATA
NTSTATUS NTAPI Bus_PnP(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: pnp.c:25
PCHAR DbgDevicePowerString(DEVICE_POWER_STATE Type)
NTSTATUS Bus_PDO_QueryResourceRequirements(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:1313
NTSTATUS Bus_PDO_QueryDeviceCaps(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:327
NTSTATUS ACPIEnumerateDevices(PFDO_DEVICE_DATA DeviceExtension)
Definition: acpienum.c:146
LPWSTR ProcessorNameString
Definition: main.c:19
NTSTATUS Bus_PDO_QueryBusInformation(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:1925
NTSTATUS Bus_GetDeviceCapabilities(PDEVICE_OBJECT DeviceObject, PDEVICE_CAPABILITIES DeviceCapabilities)
Definition: buspdo.c:1973
NTSTATUS NTAPI Bus_CompletionRoutine(PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
Definition: pnp.c:369
NTSTATUS Bus_StartFdo(PFDO_DEVICE_DATA FdoData, PIRP Irp)
Definition: pnp.c:267
struct _PDO_DEVICE_DATA * PPDO_DEVICE_DATA
struct _COMMON_DEVICE_DATA COMMON_DEVICE_DATA
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
SYSTEM_POWER_STATE SystemPowerState
Definition: acpisys.h:32
DEVICE_POWER_STATE DevicePowerState
Definition: acpisys.h:33
DEVICE_PNP_STATE DevicePnPState
Definition: acpisys.h:30
DEVICE_PNP_STATE PreviousPnPState
Definition: acpisys.h:31
PDEVICE_OBJECT Self
Definition: acpisys.h:28
COMMON_DEVICE_DATA Common
Definition: acpisys.h:59
FAST_MUTEX Mutex
Definition: acpisys.h:73
PDEVICE_OBJECT NextLowerDriver
Definition: acpisys.h:64
LIST_ENTRY ListOfPDOs
Definition: acpisys.h:67
PDEVICE_OBJECT UnderlyingPDO
Definition: acpisys.h:60
ULONG NumPDOs
Definition: acpisys.h:70
Definition: typedefs.h:120
PWCHAR HardwareIDs
Definition: acpisys.h:44
UNICODE_STRING InterfaceName
Definition: acpisys.h:49
ACPI_HANDLE AcpiHandle
Definition: acpisys.h:39
PDEVICE_OBJECT ParentFdo
Definition: acpisys.h:41
ULONG InterfaceRefCount
Definition: acpisys.h:48
LIST_ENTRY Link
Definition: acpisys.h:47
COMMON_DEVICE_DATA Common
Definition: acpisys.h:38
BOOLEAN DockDevice
Definition: acpisys.h:45
#define NTAPI
Definition: typedefs.h:36
uint16_t * PWCHAR
Definition: typedefs.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1699
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
Definition: wdfminiport.h:72
#define DeviceCapabilities
Definition: wingdi.h:4449
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:56
FAST_MUTEX
Definition: extypes.h:17
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
unsigned char UCHAR
Definition: xmlstorage.h:181
WCHAR * LPWSTR
Definition: xmlstorage.h:184