Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.3 KiB

  1. // Gemplus (C) 1999
  2. // Version 1.0
  3. // Author: Sergey Ivanov
  4. // Date of creation - 18.05.1999
  5. // Change log:
  6. //
  7. #ifndef WDM_PWR_INT
  8. #define WDM_PWR_INT
  9. #include "generic.h"
  10. #include "power.h"
  11. #pragma PAGEDCODE
  12. class CWDMPower : public CPower
  13. {
  14. public:
  15. NTSTATUS m_Status;
  16. SAFE_DESTRUCTORS();
  17. virtual VOID dispose(VOID){self_delete();};
  18. protected:
  19. CWDMPower(){m_Status = STATUS_SUCCESS;};
  20. virtual ~CWDMPower(){};
  21. public:
  22. static CPower* create(VOID);
  23. virtual PULONG registerDeviceForIdleDetection (
  24. IN PDEVICE_OBJECT DeviceObject,
  25. IN ULONG ConservationIdleTime,
  26. IN ULONG PerformanceIdleTime,
  27. IN DEVICE_POWER_STATE State
  28. );
  29. virtual POWER_STATE declarePowerState(IN PDEVICE_OBJECT DeviceObject,IN POWER_STATE_TYPE Type,IN POWER_STATE State);
  30. virtual VOID startNextPowerIrp(IN PIRP Irp);
  31. virtual VOID skipCurrentStackLocation(PIRP Irp);
  32. virtual NTSTATUS callPowerDriver (IN PDEVICE_OBJECT DeviceObject,IN OUT PIRP Irp);
  33. virtual VOID setPowerDeviceBusy(PULONG IdlePointer);
  34. virtual NTSTATUS requestPowerIrp(
  35. IN PDEVICE_OBJECT DeviceObject,
  36. IN UCHAR MinorFunction,
  37. IN POWER_STATE PowerState,
  38. IN PREQUEST_POWER_COMPLETE CompletionFunction,
  39. IN PVOID Context,
  40. OUT PIRP *Irp OPTIONAL);
  41. };
  42. #endif//POWER