mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
[CMBATT]
- Remove my cmbatt driver and use lassy's cmbatt driver instead svn path=/trunk/; revision=46655
This commit is contained in:
@@ -1,188 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: drivers/battery/cmbatt/cmbatt.c
|
||||
* PURPOSE: Control Method Battery Miniclass Driver
|
||||
* PROGRAMMERS: Cameron Gutman ([email protected])
|
||||
*/
|
||||
|
||||
#include <cmbatt.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
LIST_ENTRY BatteryList;
|
||||
KSPIN_LOCK BatteryListLock;
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmBattUnload(PDRIVER_OBJECT DriverObject)
|
||||
{
|
||||
DPRINT("Control method battery miniclass driver unloaded\n");
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattDeviceControl(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
PCMBATT_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = BatteryClassIoctl(DeviceExtension->BattClassHandle,
|
||||
Irp);
|
||||
|
||||
if (Status == STATUS_NOT_SUPPORTED)
|
||||
{
|
||||
Irp->IoStatus.Status = Status;
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattPnP(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
PCMBATT_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
|
||||
UNIMPLEMENTED
|
||||
|
||||
IoSkipCurrentIrpStackLocation(Irp);
|
||||
|
||||
return IoCallDriver(DeviceExtension->Ldo, Irp);
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattSystemControl(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
Irp->IoStatus.Status = STATUS_WMI_GUID_NOT_FOUND;
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
return STATUS_WMI_GUID_NOT_FOUND;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattPower(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
PCMBATT_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
|
||||
UNIMPLEMENTED
|
||||
|
||||
IoSkipCurrentIrpStackLocation(Irp);
|
||||
|
||||
PoStartNextPowerIrp(Irp);
|
||||
|
||||
return PoCallDriver(DeviceExtension->Ldo, Irp);
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattCreateClose(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattAddDevice(PDRIVER_OBJECT DriverObject,
|
||||
PDEVICE_OBJECT PhysicalDeviceObject)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
PCMBATT_DEVICE_EXTENSION DeviceExtension;
|
||||
BATTERY_MINIPORT_INFO BattInfo;
|
||||
|
||||
Status = IoCreateDevice(DriverObject,
|
||||
sizeof(CMBATT_DEVICE_EXTENSION),
|
||||
NULL,
|
||||
FILE_DEVICE_BATTERY,
|
||||
0,
|
||||
FALSE,
|
||||
&DeviceObject);
|
||||
if (!NT_SUCCESS(Status))
|
||||
return Status;
|
||||
|
||||
DeviceExtension = DeviceObject->DeviceExtension;
|
||||
|
||||
DeviceExtension->Pdo = PhysicalDeviceObject;
|
||||
DeviceExtension->Fdo = DeviceObject;
|
||||
DeviceExtension->Ldo = IoAttachDeviceToDeviceStack(DeviceObject,
|
||||
PhysicalDeviceObject);
|
||||
|
||||
DeviceObject->Flags |= DO_BUFFERED_IO | DO_POWER_PAGABLE;
|
||||
|
||||
/* We require an extra stack entry */
|
||||
DeviceObject->StackSize = PhysicalDeviceObject->StackSize + 2;
|
||||
|
||||
BattInfo.MajorVersion = BATTERY_CLASS_MAJOR_VERSION;
|
||||
BattInfo.MinorVersion = BATTERY_CLASS_MINOR_VERSION;
|
||||
BattInfo.Context = DeviceExtension;
|
||||
BattInfo.QueryTag = CmBattQueryTag;
|
||||
BattInfo.QueryInformation = CmBattQueryInformation;
|
||||
BattInfo.SetInformation = CmBattSetInformation;
|
||||
BattInfo.QueryStatus = CmBattQueryStatus;
|
||||
BattInfo.SetStatusNotify = CmBattSetStatusNotify;
|
||||
BattInfo.DisableStatusNotify = CmBattDisableStatusNotify;
|
||||
BattInfo.Pdo = PhysicalDeviceObject;
|
||||
BattInfo.DeviceName = NULL;
|
||||
|
||||
Status = BatteryClassInitializeDevice(&BattInfo,
|
||||
&DeviceExtension->BattClassHandle);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
IoDetachDevice(DeviceExtension->Ldo);
|
||||
IoDeleteDevice(DeviceObject);
|
||||
return Status;
|
||||
}
|
||||
|
||||
ExInterlockedInsertTailList(&BatteryList,
|
||||
&DeviceExtension->ListEntry,
|
||||
&BatteryListLock);
|
||||
|
||||
DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||
|
||||
DPRINT("Successfully registered battery with battc (0x%x)\n", DeviceExtension->BattClassHandle);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
DriverEntry(PDRIVER_OBJECT DriverObject,
|
||||
PUNICODE_STRING RegistryPath)
|
||||
{
|
||||
DPRINT("Control method battery miniclass driver initialized\n");
|
||||
|
||||
DriverObject->DriverUnload = CmBattUnload;
|
||||
DriverObject->DriverExtension->AddDevice = CmBattAddDevice;
|
||||
DriverObject->MajorFunction[IRP_MJ_POWER] = CmBattPower;
|
||||
DriverObject->MajorFunction[IRP_MJ_PNP] = CmBattPnP;
|
||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = CmBattCreateClose;
|
||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = CmBattCreateClose;
|
||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = CmBattDeviceControl;
|
||||
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = CmBattSystemControl;
|
||||
|
||||
KeInitializeSpinLock(&BatteryListLock);
|
||||
InitializeListHead(&BatteryList);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: drivers/battery/cmbatt/cmbatt.h
|
||||
* PURPOSE: Control Method Battery Miniclass Driver
|
||||
* PROGRAMMERS: Cameron Gutman ([email protected])
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ntddk.h>
|
||||
#include <batclass.h>
|
||||
|
||||
typedef struct _CMBATT_DEVICE_EXTENSION {
|
||||
PDEVICE_OBJECT Pdo;
|
||||
PDEVICE_OBJECT Ldo;
|
||||
PDEVICE_OBJECT Fdo;
|
||||
PVOID BattClassHandle;
|
||||
LIST_ENTRY ListEntry;
|
||||
} CMBATT_DEVICE_EXTENSION, *PCMBATT_DEVICE_EXTENSION;
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryTag(PVOID Context,
|
||||
PULONG BatteryTag);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattDisableStatusNotify(PVOID Context);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattSetStatusNotify(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
PBATTERY_NOTIFY BatteryNotify);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryInformation(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
BATTERY_QUERY_INFORMATION_LEVEL Level,
|
||||
OPTIONAL LONG AtRate,
|
||||
PVOID Buffer,
|
||||
ULONG BufferLength,
|
||||
PULONG ReturnedLength);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryStatus(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
PBATTERY_STATUS BatteryStatus);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattSetInformation(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
BATTERY_SET_INFORMATION_LEVEL Level,
|
||||
OPTIONAL PVOID Buffer);
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="cmbatt" type="kernelmodedriver" installbase="system32/drivers" installname="cmbatt.sys">
|
||||
<library>ntoskrnl</library>
|
||||
<library>hal</library>
|
||||
<library>battc</library>
|
||||
<include base="cmbatt">.</include>
|
||||
<file>cmbatt.c</file>
|
||||
<file>miniclass.c</file>
|
||||
<file>cmbatt.rc</file>
|
||||
</module>
|
||||
@@ -1,5 +0,0 @@
|
||||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "Control Method Battery Miniclass Driver\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "cmbatt\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "cmbatt.sys\0"
|
||||
#include <reactos/version.rc>
|
||||
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: drivers/battery/cmbatt/miniclass.c
|
||||
* PURPOSE: Control Method Battery Miniclass Driver
|
||||
* PROGRAMMERS: Cameron Gutman ([email protected])
|
||||
*/
|
||||
|
||||
#include <cmbatt.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryTag(PVOID Context,
|
||||
PULONG BatteryTag)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
*BatteryTag = 0;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattDisableStatusNotify(PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattSetStatusNotify(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
PBATTERY_NOTIFY BatteryNotify)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryInformation(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
BATTERY_QUERY_INFORMATION_LEVEL Level,
|
||||
OPTIONAL LONG AtRate,
|
||||
PVOID Buffer,
|
||||
ULONG BufferLength,
|
||||
PULONG ReturnedLength)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattQueryStatus(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
PBATTERY_STATUS BatteryStatus)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmBattSetInformation(PVOID Context,
|
||||
ULONG BatteryTag,
|
||||
BATTERY_SET_INFORMATION_LEVEL Level,
|
||||
OPTIONAL PVOID Buffer)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
@@ -4,7 +4,4 @@
|
||||
<directory name="battc">
|
||||
<xi:include href="battc/battc.rbuild" />
|
||||
</directory>
|
||||
<directory name="cmbatt">
|
||||
<xi:include href="cmbatt/cmbatt.rbuild" />
|
||||
</directory>
|
||||
</group>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="cmbattx" type="kernelmodedriver" installbase="system32/drivers" installname="cmbattx.sys">
|
||||
<module name="cmbatt" type="kernelmodedriver" installbase="system32/drivers" installname="cmbatt.sys">
|
||||
<library>ntoskrnl</library>
|
||||
<library>hal</library>
|
||||
<library>battc</library>
|
||||
|
||||
Reference in New Issue
Block a user