19 DPRINT(
"Battery class driver initialized\n");
67 PULONG InstanceLengthArray,
102 DPRINT1(
"Waiting for battery is UNIMPLEMENTED!\n");
146 if (BattClass ==
NULL)
162 &GUID_DEVICE_BATTERY,
171 DPRINT1(
"Got STATUS_OBJECT_NAME_EXISTS for SetDeviceInterfaceState\n");
177 DPRINT1(
"IoRegisterDeviceInterface failed (0x%x)\n",
Status);
209 Irp->IoStatus.Information = 0;
229 (
PULONG)
Irp->AssociatedIrp.SystemBuffer);
250 (
PULONG)
Irp->AssociatedIrp.SystemBuffer);
252 Irp->IoStatus.Information =
sizeof(
ULONG);
261 Irp->IoStatus.Information =
sizeof(
ULONG);
281 BattStatus =
Irp->AssociatedIrp.SystemBuffer;
320 Irp->IoStatus.Information =
sizeof(
ULONG);
340 BattQueryInfo =
Irp->AssociatedIrp.SystemBuffer;
346 Irp->AssociatedIrp.SystemBuffer,
363 BattSetInfo =
Irp->AssociatedIrp.SystemBuffer;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
struct _BATTERY_WAIT_STATUS * PBATTERY_WAIT_STATUS
#define IOCTL_BATTERY_QUERY_TAG
#define IOCTL_BATTERY_SET_INFORMATION
#define IOCTL_BATTERY_QUERY_INFORMATION
struct _BATTERY_STATUS BATTERY_STATUS
#define IOCTL_BATTERY_QUERY_STATUS
BCLASSAPI NTSTATUS NTAPI BatteryClassQueryWmiDataBlock(PVOID ClassData, PDEVICE_OBJECT DeviceObject, PIRP Irp, ULONG GuidIndex, PULONG InstanceLengthArray, ULONG OutBufferSize, PUCHAR Buffer)
BCLASSAPI NTSTATUS NTAPI BatteryClassStatusNotify(PVOID ClassData)
BCLASSAPI NTSTATUS NTAPI BatteryClassInitializeDevice(PBATTERY_MINIPORT_INFO MiniportInfo, PVOID *ClassData)
BCLASSAPI NTSTATUS NTAPI BatteryClassIoctl(PVOID ClassData, PIRP Irp)
BCLASSAPI NTSTATUS NTAPI BatteryClassSystemControl(PVOID ClassData, PVOID WmiLibContext, PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Disposition)
BCLASSAPI NTSTATUS NTAPI BatteryClassUnload(PVOID ClassData)
#define EVENT_BATTERY_STATUS
#define BATTERY_CLASS_DATA_TAG
#define EVENT_BATTERY_TAG
_In_ PIRP _In_ ULONG GuidIndex
#define NT_SUCCESS(StatCode)
DRIVER_INITIALIZE DriverEntry
_In_ PIO_STACK_LOCATION IrpSp
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
#define ExFreePoolWithTag(_P, _T)
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define Int32x32To64(a, b)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
#define IoCompleteRequest
#define STATUS_OBJECT_NAME_EXISTS
#define STATUS_WMI_GUID_NOT_FOUND
#define STATUS_NOT_SUPPORTED
#define STATUS_BUFFER_TOO_SMALL
UNICODE_STRING InterfaceName
PVOID EventTriggerContext
BATTERY_MINIPORT_INFO MiniportInfo
BCLASS_QUERY_INFORMATION QueryInformation
BCLASS_SET_STATUS_NOTIFY SetStatusNotify
BCLASS_SET_INFORMATION SetInformation
BCLASS_DISABLE_STATUS_NOTIFY DisableStatusNotify
BCLASS_QUERY_STATUS QueryStatus
BCLASS_QUERY_TAG QueryTag
struct _IO_STACK_LOCATION::@1575::@1576 DeviceIoControl
union _IO_STACK_LOCATION::@1575 Parameters
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_NO_SUCH_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)