mirror of
https://github.com/reactos/reactos.git
synced 2024-11-05 22:26:39 +00:00
c424146e2c
svn path=/branches/cmake-bringup/; revision=48236
144 lines
3.4 KiB
C
144 lines
3.4 KiB
C
#include <ntddk.h>
|
|
|
|
#include <acpi.h>
|
|
|
|
#include <acpisys.h>
|
|
#include <acpi_bus.h>
|
|
#include <acpi_drivers.h>
|
|
|
|
#include <wdmguid.h>
|
|
#define NDEBUG
|
|
#include <debug.h>
|
|
|
|
VOID
|
|
NTAPI
|
|
AcpiInterfaceReference(PVOID Context)
|
|
{
|
|
UNIMPLEMENTED
|
|
}
|
|
|
|
VOID
|
|
NTAPI
|
|
AcpiInterfaceDereference(PVOID Context)
|
|
{
|
|
UNIMPLEMENTED
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceConnectVector(PDEVICE_OBJECT Context,
|
|
ULONG GpeNumber,
|
|
KINTERRUPT_MODE Mode,
|
|
BOOLEAN Shareable,
|
|
PGPE_SERVICE_ROUTINE ServiceRoutine,
|
|
PVOID ServiceContext,
|
|
PVOID ObjectContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceDisconnectVector(PVOID ObjectContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceEnableEvent(PDEVICE_OBJECT Context,
|
|
PVOID ObjectContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceDisableEvent(PDEVICE_OBJECT Context,
|
|
PVOID ObjectContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceClearStatus(PDEVICE_OBJECT Context,
|
|
PVOID ObjectContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
AcpiInterfaceNotificationsRegister(PDEVICE_OBJECT Context,
|
|
PDEVICE_NOTIFY_CALLBACK NotificationHandler,
|
|
PVOID NotificationContext)
|
|
{
|
|
UNIMPLEMENTED
|
|
|
|
return STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
VOID
|
|
NTAPI
|
|
AcpiInterfaceNotificationsUnregister(PDEVICE_OBJECT Context,
|
|
PDEVICE_NOTIFY_CALLBACK NotificationHandler)
|
|
{
|
|
UNIMPLEMENTED
|
|
}
|
|
|
|
NTSTATUS
|
|
Bus_PDO_QueryInterface(PPDO_DEVICE_DATA DeviceData,
|
|
PIRP Irp)
|
|
{
|
|
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
|
PACPI_INTERFACE_STANDARD AcpiInterface;
|
|
|
|
if (IrpSp->Parameters.QueryInterface.Version != 1)
|
|
{
|
|
DPRINT1("Invalid version number: %d\n",
|
|
IrpSp->Parameters.QueryInterface.Version);
|
|
return STATUS_INVALID_PARAMETER;
|
|
}
|
|
|
|
if (RtlCompareMemory(IrpSp->Parameters.QueryInterface.InterfaceType,
|
|
&GUID_ACPI_INTERFACE_STANDARD, sizeof(GUID)) == sizeof(GUID))
|
|
{
|
|
DPRINT("GUID_ACPI_INTERFACE_STANDARD\n");
|
|
|
|
if (IrpSp->Parameters.QueryInterface.Size < sizeof(ACPI_INTERFACE_STANDARD))
|
|
{
|
|
DPRINT1("Buffer too small! (%d)\n", IrpSp->Parameters.QueryInterface.Size);
|
|
return STATUS_BUFFER_TOO_SMALL;
|
|
}
|
|
|
|
AcpiInterface = (PACPI_INTERFACE_STANDARD)IrpSp->Parameters.QueryInterface.Interface;
|
|
|
|
AcpiInterface->InterfaceReference = AcpiInterfaceReference;
|
|
AcpiInterface->InterfaceDereference = AcpiInterfaceDereference;
|
|
AcpiInterface->GpeConnectVector = AcpiInterfaceConnectVector;
|
|
AcpiInterface->GpeDisconnectVector = AcpiInterfaceDisconnectVector;
|
|
AcpiInterface->GpeEnableEvent = AcpiInterfaceEnableEvent;
|
|
AcpiInterface->GpeDisableEvent = AcpiInterfaceDisableEvent;
|
|
AcpiInterface->GpeClearStatus = AcpiInterfaceClearStatus;
|
|
AcpiInterface->RegisterForDeviceNotifications = AcpiInterfaceNotificationsRegister;
|
|
AcpiInterface->UnregisterForDeviceNotifications = AcpiInterfaceNotificationsUnregister;
|
|
|
|
return STATUS_SUCCESS;
|
|
}
|
|
else
|
|
{
|
|
DPRINT1("Invalid GUID\n");
|
|
return STATUS_INVALID_PARAMETER;
|
|
}
|
|
}
|