Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenacpisys.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS ACPI bus driver 00003 * FILE: acpi/ospm/include/acpisys.h 00004 * PURPOSE: ACPI bus driver definitions 00005 */ 00006 typedef enum _DEVICE_PNP_STATE { 00007 00008 NotStarted = 0, // Not started yet 00009 Started, // Device has received the START_DEVICE IRP 00010 StopPending, // Device has received the QUERY_STOP IRP 00011 Stopped, // Device has received the STOP_DEVICE IRP 00012 UnKnown // Unknown state 00013 00014 } DEVICE_PNP_STATE; 00015 00016 // 00017 // A common header for the device extensions of the PDOs and FDO 00018 // 00019 00020 typedef struct _COMMON_DEVICE_DATA 00021 { 00022 PDEVICE_OBJECT Self; 00023 BOOLEAN IsFDO; 00024 DEVICE_PNP_STATE DevicePnPState; 00025 DEVICE_PNP_STATE PreviousPnPState; 00026 SYSTEM_POWER_STATE SystemPowerState; 00027 DEVICE_POWER_STATE DevicePowerState; 00028 } COMMON_DEVICE_DATA, *PCOMMON_DEVICE_DATA; 00029 00030 typedef struct _PDO_DEVICE_DATA 00031 { 00032 COMMON_DEVICE_DATA Common; 00033 ACPI_HANDLE AcpiHandle; 00034 // A back pointer to the bus 00035 PDEVICE_OBJECT ParentFdo; 00036 // An array of (zero terminated wide character strings). 00037 // The array itself also null terminated 00038 PWCHAR HardwareIDs; 00039 // Link point to hold all the PDOs for a single bus together 00040 LIST_ENTRY Link; 00041 ULONG InterfaceRefCount; 00042 UNICODE_STRING InterfaceName; 00043 00044 } PDO_DEVICE_DATA, *PPDO_DEVICE_DATA; 00045 00046 // 00047 // The device extension of the bus itself. From whence the PDO's are born. 00048 // 00049 00050 typedef struct _FDO_DEVICE_DATA 00051 { 00052 COMMON_DEVICE_DATA Common; 00053 PDEVICE_OBJECT UnderlyingPDO; 00054 00055 // The underlying bus PDO and the actual device object to which our 00056 // FDO is attached 00057 PDEVICE_OBJECT NextLowerDriver; 00058 00059 // List of PDOs created so far 00060 LIST_ENTRY ListOfPDOs; 00061 00062 // The PDOs currently enumerated. 00063 ULONG NumPDOs; 00064 00065 // A synchronization for access to the device extension. 00066 FAST_MUTEX Mutex; 00067 00068 } FDO_DEVICE_DATA, *PFDO_DEVICE_DATA; 00069 00070 #define FDO_FROM_PDO(pdoData) \ 00071 ((PFDO_DEVICE_DATA) (pdoData)->ParentFdo->DeviceExtension) 00072 00073 #define INITIALIZE_PNP_STATE(_Data_) \ 00074 (_Data_).DevicePnPState = NotStarted;\ 00075 (_Data_).PreviousPnPState = NotStarted; 00076 00077 #define SET_NEW_PNP_STATE(_Data_, _state_) \ 00078 (_Data_).PreviousPnPState = (_Data_).DevicePnPState;\ 00079 (_Data_).DevicePnPState = (_state_); 00080 00081 #define RESTORE_PREVIOUS_PNP_STATE(_Data_) \ 00082 (_Data_).DevicePnPState = (_Data_).PreviousPnPState;\ 00083 00084 /* acpienum.c */ 00085 00086 NTSTATUS 00087 ACPIEnumerateDevices( 00088 PFDO_DEVICE_DATA DeviceExtension); 00089 00090 NTSTATUS 00091 NTAPI 00092 Bus_PDO_EvalMethod(PPDO_DEVICE_DATA DeviceData, 00093 PIRP Irp); 00094 00095 NTSTATUS 00096 NTAPI 00097 Bus_CreateClose ( 00098 PDEVICE_OBJECT DeviceObject, 00099 PIRP Irp 00100 ); 00101 00102 VOID 00103 Bus_DriverUnload ( 00104 PDRIVER_OBJECT DriverObject 00105 ); 00106 00107 PCHAR 00108 PnPMinorFunctionString ( 00109 UCHAR MinorFunction 00110 ); 00111 00112 NTSTATUS 00113 NTAPI 00114 Bus_AddDevice( 00115 PDRIVER_OBJECT DriverObject, 00116 PDEVICE_OBJECT PhysicalDeviceObject 00117 ); 00118 00119 NTSTATUS 00120 Bus_SendIrpSynchronously ( 00121 PDEVICE_OBJECT DeviceObject, 00122 PIRP Irp 00123 ); 00124 00125 NTSTATUS 00126 NTAPI 00127 Bus_PnP ( 00128 PDEVICE_OBJECT DeviceObject, 00129 PIRP Irp 00130 ); 00131 00132 NTSTATUS 00133 NTAPI 00134 Bus_CompletionRoutine( 00135 PDEVICE_OBJECT DeviceObject, 00136 PIRP Irp, 00137 PVOID Context 00138 ); 00139 00140 VOID 00141 Bus_InitializePdo ( 00142 PDEVICE_OBJECT Pdo, 00143 PFDO_DEVICE_DATA FdoData 00144 ); 00145 00146 00147 void 00148 Bus_RemoveFdo ( 00149 PFDO_DEVICE_DATA FdoData 00150 ); 00151 00152 NTSTATUS 00153 Bus_DestroyPdo ( 00154 PDEVICE_OBJECT Device, 00155 PPDO_DEVICE_DATA PdoData 00156 ); 00157 00158 00159 NTSTATUS 00160 Bus_FDO_PnP ( 00161 PDEVICE_OBJECT DeviceObject, 00162 PIRP Irp, 00163 PIO_STACK_LOCATION IrpStack, 00164 PFDO_DEVICE_DATA DeviceData 00165 ); 00166 00167 00168 NTSTATUS 00169 Bus_StartFdo ( 00170 PFDO_DEVICE_DATA FdoData, 00171 PIRP Irp ); 00172 00173 PCHAR 00174 DbgDeviceIDString( 00175 BUS_QUERY_ID_TYPE Type 00176 ); 00177 00178 PCHAR 00179 DbgDeviceRelationString( 00180 DEVICE_RELATION_TYPE Type 00181 ); 00182 00183 NTSTATUS 00184 Bus_FDO_Power ( 00185 PFDO_DEVICE_DATA FdoData, 00186 PIRP Irp 00187 ); 00188 00189 NTSTATUS 00190 Bus_PDO_Power ( 00191 PPDO_DEVICE_DATA PdoData, 00192 PIRP Irp 00193 ); 00194 00195 NTSTATUS 00196 NTAPI 00197 Bus_Power ( 00198 PDEVICE_OBJECT DeviceObject, 00199 PIRP Irp 00200 ); 00201 00202 PCHAR 00203 PowerMinorFunctionString ( 00204 UCHAR MinorFunction 00205 ); 00206 00207 PCHAR 00208 DbgSystemPowerString( 00209 SYSTEM_POWER_STATE Type 00210 ); 00211 00212 PCHAR 00213 DbgDevicePowerString( 00214 DEVICE_POWER_STATE Type 00215 ); 00216 00217 NTSTATUS 00218 Bus_PDO_PnP ( 00219 PDEVICE_OBJECT DeviceObject, 00220 PIRP Irp, 00221 PIO_STACK_LOCATION IrpStack, 00222 PPDO_DEVICE_DATA DeviceData 00223 ); 00224 00225 NTSTATUS 00226 Bus_PDO_QueryDeviceCaps( 00227 PPDO_DEVICE_DATA DeviceData, 00228 PIRP Irp ); 00229 00230 NTSTATUS 00231 Bus_PDO_QueryDeviceId( 00232 PPDO_DEVICE_DATA DeviceData, 00233 PIRP Irp ); 00234 00235 00236 NTSTATUS 00237 Bus_PDO_QueryDeviceText( 00238 PPDO_DEVICE_DATA DeviceData, 00239 PIRP Irp ); 00240 00241 NTSTATUS 00242 Bus_PDO_QueryResources( 00243 PPDO_DEVICE_DATA DeviceData, 00244 PIRP Irp ); 00245 00246 NTSTATUS 00247 Bus_PDO_QueryResourceRequirements( 00248 PPDO_DEVICE_DATA DeviceData, 00249 PIRP Irp ); 00250 00251 NTSTATUS 00252 Bus_PDO_QueryDeviceRelations( 00253 PPDO_DEVICE_DATA DeviceData, 00254 PIRP Irp ); 00255 00256 NTSTATUS 00257 Bus_PDO_QueryBusInformation( 00258 PPDO_DEVICE_DATA DeviceData, 00259 PIRP Irp ); 00260 00261 NTSTATUS 00262 Bus_GetDeviceCapabilities( 00263 PDEVICE_OBJECT DeviceObject, 00264 PDEVICE_CAPABILITIES DeviceCapabilities 00265 ); 00266 00267 NTSTATUS 00268 Bus_PDO_QueryInterface( 00269 PPDO_DEVICE_DATA DeviceData, 00270 PIRP Irp ); 00271 00272 BOOLEAN 00273 Bus_GetCrispinessLevel( 00274 PVOID Context, 00275 PUCHAR Level 00276 ); 00277 BOOLEAN 00278 Bus_SetCrispinessLevel( 00279 PVOID Context, 00280 UCHAR Level 00281 ); 00282 BOOLEAN 00283 Bus_IsSafetyLockEnabled( 00284 PVOID Context 00285 ); 00286 VOID 00287 Bus_InterfaceReference ( 00288 PVOID Context 00289 ); 00290 VOID 00291 Bus_InterfaceDereference ( 00292 PVOID Context 00293 ); 00294 00295 /* EOF */ Generated on Sun May 27 2012 04:27:26 for ReactOS by
1.7.6.1
|