19 {&GUID_POWER_DEVICE_WAKE_ENABLE, 1, 0}
31 return "IRP_MN_CHANGE_SINGLE_INSTANCE";
33 return "IRP_MN_CHANGE_SINGLE_ITEM";
35 return "IRP_MN_DISABLE_COLLECTION";
37 return "IRP_MN_DISABLE_EVENTS";
39 return "IRP_MN_ENABLE_COLLECTION";
41 return "IRP_MN_ENABLE_EVENTS";
43 return "IRP_MN_EXECUTE_METHOD";
45 return "IRP_MN_QUERY_ALL_DATA";
47 return "IRP_MN_QUERY_SINGLE_INSTANCE";
49 return "IRP_MN_REGINFO";
51 return "IRP_MN_?????";
75 PULONG InstanceLengthArray,
137 DeviceExtension->WmiLibInfo.ExecuteWmiMethod =
NULL;
138 DeviceExtension->WmiLibInfo.WmiFunctionControl =
NULL;
156 DbgPrint(
"CmBatt: SystemControl: %s\n",
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
BCLASSAPI NTSTATUS NTAPI BatteryClassSystemControl(PVOID ClassData, PVOID WmiLibContext, PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Disposition)
_In_ LPGUID _In_ ULONG InstanceIndex
_In_ PIRP _In_ ULONG GuidIndex
_In_ PIRP _In_ ULONG _In_ ULONG BufferAvail
PCHAR NTAPI WMIMinorFunctionString(IN UCHAR MinorFunction)
NTSTATUS NTAPI CmBattWmiRegistration(IN PCMBATT_DEVICE_EXTENSION DeviceExtension)
WMIGUIDREGINFO CmBattWmiGuidList[1]
NTSTATUS NTAPI CmBattQueryWmiDataBlock(PDEVICE_OBJECT DeviceObject, PIRP Irp, ULONG GuidIndex, ULONG InstanceIndex, ULONG InstanceCount, PULONG InstanceLengthArray, ULONG BufferAvail, PUCHAR Buffer)
NTSTATUS NTAPI CmBattSetWmiDataItem(PDEVICE_OBJECT DeviceObject, PIRP Irp, ULONG GuidIndex, ULONG InstanceIndex, ULONG DataItemId, ULONG BufferSize, PUCHAR Buffer)
NTSTATUS NTAPI CmBattSetWmiDataBlock(PDEVICE_OBJECT DeviceObject, PIRP Irp, ULONG GuidIndex, ULONG InstanceIndex, ULONG BufferSize, PUCHAR Buffer)
NTSTATUS NTAPI CmBattWmiDeRegistration(IN PCMBATT_DEVICE_EXTENSION DeviceExtension)
NTSTATUS NTAPI CmBattSystemControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI CmBattQueryWmiRegInfo(PDEVICE_OBJECT DeviceObject, PULONG RegFlags, PUNICODE_STRING InstanceName, PUNICODE_STRING *RegistryPath, PUNICODE_STRING MofResourceName, PDEVICE_OBJECT *Pdo)
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCompleteRequest
NTSTATUS NTAPI IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG Action)
#define STATUS_DEVICE_REMOVED
#define STATUS_NOT_IMPLEMENTED
CMBATT_EXTENSION_TYPE FdoType
WMILIB_CONTEXT WmiLibInfo
PDEVICE_OBJECT AttachedDevice
IO_REMOVE_LOCK RemoveLock
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING MofResourceName
_In_ UCHAR _In_ UCHAR MinorFunction
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
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
NTSTATUS NTAPI WmiSystemControl(IN PWMILIB_CONTEXT WmiLibInfo, IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, OUT PSYSCTL_IRP_DISPOSITION IrpDisposition)
enum _SYSCTL_IRP_DISPOSITION SYSCTL_IRP_DISPOSITION
#define IoAcquireRemoveLock(RemoveLock, Tag)
#define IoReleaseRemoveLock(_RemoveLock, _Tag)
#define IRP_MN_EXECUTE_METHOD
#define IRP_MN_DISABLE_COLLECTION
#define IRP_MN_CHANGE_SINGLE_ITEM
#define WMIREG_ACTION_REGISTER
#define IRP_MN_QUERY_ALL_DATA
#define WMIREG_ACTION_DEREGISTER
#define IRP_MN_DISABLE_EVENTS
#define IRP_MN_ENABLE_EVENTS
#define IRP_MN_ENABLE_COLLECTION
#define IRP_MN_CHANGE_SINGLE_INSTANCE
#define IRP_MN_QUERY_SINGLE_INSTANCE