- Remove my cmbatt driver and use lassy's cmbatt driver instead

svn path=/trunk/; revision=46655
This commit is contained in:
Cameron Gutman
2010-04-01 22:24:34 +00:00
parent 633c67bdbf
commit 77d4bd5cd3
7 changed files with 1 additions and 348 deletions
-188
View File
@@ -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;
}
-58
View File
@@ -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>
-5
View File
@@ -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;
}
-3
View File
@@ -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>