ReactOS 0.4.15-dev-7846-g8ba6c66
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
45 // Link point to hold all the PDOs for a single bus together
49
51
52//
53// The device extension of the bus itself. From whence the PDO's are born.
54//
55
56typedef struct _FDO_DEVICE_DATA
57{
60
61 // The underlying bus PDO and the actual device object to which our
62 // FDO is attached
64
65 // List of PDOs created so far
67
68 // The PDOs currently enumerated.
70
71 // A synchronization for access to the device extension.
73
75
76#define FDO_FROM_PDO(pdoData) \
77 ((PFDO_DEVICE_DATA) (pdoData)->ParentFdo->DeviceExtension)
78
79#define INITIALIZE_PNP_STATE(_Data_) \
80 (_Data_).DevicePnPState = NotStarted;\
81 (_Data_).PreviousPnPState = NotStarted;
82
83#define SET_NEW_PNP_STATE(_Data_, _state_) \
84 (_Data_).PreviousPnPState = (_Data_).DevicePnPState;\
85 (_Data_).DevicePnPState = (_state_);
86
87#define RESTORE_PREVIOUS_PNP_STATE(_Data_) \
88 (_Data_).DevicePnPState = (_Data_).PreviousPnPState;\
89
90/* acpienum.c */
91
94 PFDO_DEVICE_DATA DeviceExtension);
95
99 PIRP Irp);
100
102NTAPI
105 PIRP Irp
106 );
107
108VOID
111 );
112
113PCHAR
116);
117
119NTAPI
123 );
124
128 PIRP Irp
129 );
130
132NTAPI
133Bus_PnP (
135 PIRP Irp
136 );
137
139NTAPI
142 PIRP Irp,
144 );
145
146VOID
149 PFDO_DEVICE_DATA FdoData
150 );
151
152
153void
155 PFDO_DEVICE_DATA FdoData
156 );
157
161 PPDO_DEVICE_DATA PdoData
162 );
163
164
168 PIRP Irp,
169 PIO_STACK_LOCATION IrpStack,
171 );
172
173
176 PFDO_DEVICE_DATA FdoData,
177 PIRP Irp );
178
179PCHAR
182 );
183
184PCHAR
187 );
188
191 PFDO_DEVICE_DATA FdoData,
192 PIRP Irp
193 );
194
197 PPDO_DEVICE_DATA PdoData,
198 PIRP Irp
199 );
200
202NTAPI
203Bus_Power (
205 PIRP Irp
206 );
207
208PCHAR
211);
212
213PCHAR
216 );
217
218PCHAR
221 );
222
226 PIRP Irp,
227 PIO_STACK_LOCATION IrpStack,
229 );
230
234 PIRP Irp );
235
239 PIRP Irp );
240
241
245 PIRP Irp );
246
250 PIRP Irp );
251
255 PIRP Irp );
256
260 PIRP Irp );
261
265 PIRP Irp );
266
271 );
272
276 PIRP Irp );
277
282 );
287 );
291 );
292VOID
295 );
296VOID
299 );
300
301/* 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
NTSTATUS NTAPI Bus_AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT PhysicalDeviceObject)
Definition: main.c:31
VOID Bus_InterfaceReference(PVOID Context)
NTSTATUS Bus_PDO_QueryResources(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:794
NTSTATUS NTAPI Bus_PDO_EvalMethod(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: eval.c:85
NTSTATUS NTAPI Bus_CreateClose(PDEVICE_OBJECT DeviceObject, PIRP Irp)
LPWSTR ProcessorIdString
Definition: main.c:25
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:1822
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:681
BOOLEAN Bus_GetCrispinessLevel(PVOID Context, PUCHAR Level)
NTSTATUS Bus_PDO_QueryDeviceId(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:433
NTSTATUS Bus_PDO_QueryInterface(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: interface.c:94
UNICODE_STRING ProcessorHardwareIds
Definition: main.c:24
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:1301
NTSTATUS Bus_PDO_QueryDeviceCaps(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:319
NTSTATUS ACPIEnumerateDevices(PFDO_DEVICE_DATA DeviceExtension)
Definition: acpienum.c:146
LPWSTR ProcessorNameString
Definition: main.c:26
NTSTATUS Bus_PDO_QueryBusInformation(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
Definition: buspdo.c:1913
NTSTATUS Bus_GetDeviceCapabilities(PDEVICE_OBJECT DeviceObject, PDEVICE_CAPABILITIES DeviceCapabilities)
Definition: buspdo.c:1961
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
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_In_ PIRP Irp
Definition: csq.h:116
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:58
FAST_MUTEX Mutex
Definition: acpisys.h:72
PDEVICE_OBJECT NextLowerDriver
Definition: acpisys.h:63
LIST_ENTRY ListOfPDOs
Definition: acpisys.h:66
PDEVICE_OBJECT UnderlyingPDO
Definition: acpisys.h:59
ULONG NumPDOs
Definition: acpisys.h:69
Definition: typedefs.h:120
PWCHAR HardwareIDs
Definition: acpisys.h:44
UNICODE_STRING InterfaceName
Definition: acpisys.h:48
PDEVICE_OBJECT ParentFdo
Definition: acpisys.h:41
ACPI_HANDLE AcpiHandle
Definition: acpisys.h:39
ULONG InterfaceRefCount
Definition: acpisys.h:47
LIST_ENTRY Link
Definition: acpisys.h:46
COMMON_DEVICE_DATA Common
Definition: acpisys.h:38
#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