Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / include / xdk / pofuncs.h
diff --git a/sdk/include/xdk/pofuncs.h b/sdk/include/xdk/pofuncs.h
new file mode 100644 (file)
index 0000000..7483576
--- /dev/null
@@ -0,0 +1,197 @@
+$if (_WDMDDK_)
+/******************************************************************************
+ *                     Power Management Support Functions                     *
+ ******************************************************************************/
+
+#define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoCallDriver(
+  _In_ struct _DEVICE_OBJECT *DeviceObject,
+  _Inout_ __drv_aliasesMem struct _IRP *Irp);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+PULONG
+NTAPI
+PoRegisterDeviceForIdleDetection(
+  _In_ struct _DEVICE_OBJECT *DeviceObject,
+  _In_ ULONG ConservationIdleTime,
+  _In_ ULONG PerformanceIdleTime,
+  _In_ DEVICE_POWER_STATE State);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+PVOID
+NTAPI
+PoRegisterSystemState(
+  _Inout_opt_ PVOID StateHandle,
+  _In_ EXECUTION_STATE Flags);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoRequestPowerIrp(
+  _In_ struct _DEVICE_OBJECT *DeviceObject,
+  _In_ UCHAR MinorFunction,
+  _In_ POWER_STATE PowerState,
+  _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction,
+  _In_opt_ __drv_aliasesMem PVOID Context,
+  _Outptr_opt_ struct _IRP **Irp);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+POWER_STATE
+NTAPI
+PoSetPowerState(
+  _In_ struct _DEVICE_OBJECT *DeviceObject,
+  _In_ POWER_STATE_TYPE Type,
+  _In_ POWER_STATE State);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+PoSetSystemState(
+  _In_ EXECUTION_STATE Flags);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+PoStartNextPowerIrp(
+  _Inout_ struct _IRP *Irp);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+PoUnregisterSystemState(
+  _Inout_ PVOID StateHandle);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoRequestShutdownEvent(
+  OUT PVOID *Event);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+$endif (_WDMDDK_)
+
+$if (_NTIFS_)
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoQueueShutdownWorkItem(
+  _Inout_ __drv_aliasesMem PWORK_QUEUE_ITEM WorkItem);
+#endif
+$endif (_NTIFS_)
+$if (_WDMDDK_)
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+PoSetSystemWake(
+  _Inout_ struct _IRP *Irp);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+PoGetSystemWake(
+  _In_ struct _IRP *Irp);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoRegisterPowerSettingCallback(
+  _In_opt_ PDEVICE_OBJECT DeviceObject,
+  _In_ LPCGUID SettingGuid,
+  _In_ PPOWER_SETTING_CALLBACK Callback,
+  _In_opt_ PVOID Context,
+  _Outptr_opt_ PVOID *Handle);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoUnregisterPowerSettingCallback(
+  _Inout_ PVOID Handle);
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
+NTKERNELAPI
+VOID
+NTAPI
+PoSetDeviceBusyEx(
+  _Inout_ PULONG IdlePointer);
+#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
+
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+
+NTKERNELAPI
+VOID
+NTAPI
+PoStartDeviceBusy(
+  _Inout_ PULONG IdlePointer);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoEndDeviceBusy(
+  _Inout_ PULONG IdlePointer);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+PoQueryWatchdogTime(
+  _In_ PDEVICE_OBJECT Pdo,
+  _Out_ PULONG SecondsRemaining);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+PoDeletePowerRequest(
+  _Inout_ PVOID PowerRequest);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoSetPowerRequest(
+  _Inout_ PVOID PowerRequest,
+  _In_ POWER_REQUEST_TYPE Type);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoClearPowerRequest(
+  _Inout_ PVOID PowerRequest,
+  _In_ POWER_REQUEST_TYPE Type);
+
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoCreatePowerRequest(
+  _Outptr_ PVOID *PowerRequest,
+  _In_ PDEVICE_OBJECT DeviceObject,
+  _In_opt_ PCOUNTED_REASON_CONTEXT Context);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+