175 lines
3.8 KiB
C
175 lines
3.8 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1990 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
hanfnc.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
default handlers for hal functions which don't get handlers
|
||
|
installed by the hal
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Ken Reneris (kenr) 19-July-1994
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include "ntos.h"
|
||
|
#include "haldisp.h"
|
||
|
|
||
|
HAL_DISPATCH HalDispatchTable = {
|
||
|
HAL_DISPATCH_VERSION,
|
||
|
xHalQuerySystemInformation,
|
||
|
xHalSetSystemInformation,
|
||
|
xHalQueryBusSlots,
|
||
|
xHalDeviceControl,
|
||
|
xHalExamineMBR,
|
||
|
xHalIoAssignDriveLetters,
|
||
|
xHalIoReadPartitionTable,
|
||
|
xHalIoSetPartitionInformation,
|
||
|
xHalIoWritePartitionTable,
|
||
|
xHalHandlerForBus, // HalReferenceHandlerByBus
|
||
|
xHalReferenceHandler, // HalReferenceBusHandler
|
||
|
xHalReferenceHandler // HalDereferenceBusHandler
|
||
|
};
|
||
|
|
||
|
HAL_PRIVATE_DISPATCH HalPrivateDispatchTable = {
|
||
|
HAL_PRIVATE_DISPATCH_VERSION,
|
||
|
xHalHandlerForBus,
|
||
|
xHalHandlerForBus,
|
||
|
NULL, // reserved
|
||
|
xHalRegisterBusHandler,
|
||
|
NULL, // HalHibernateProcessor
|
||
|
xHalSuspendHibernateSystem,
|
||
|
NULL // HalpSuspendHibernateSystem;
|
||
|
};
|
||
|
|
||
|
#ifdef ALLOC_PRAGMA
|
||
|
#pragma alloc_text(PAGE, xHalQuerySystemInformation)
|
||
|
#pragma alloc_text(PAGE, xHalSetSystemInformation)
|
||
|
#pragma alloc_text(PAGE, xHalQueryBusSlots)
|
||
|
#pragma alloc_text(PAGE, xHalRegisterBusHandler)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
//
|
||
|
// Global dispatch table for HAL apis
|
||
|
//
|
||
|
|
||
|
|
||
|
//
|
||
|
// Stub handlers for hals which don't provide the above functions
|
||
|
//
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalQuerySystemInformation(
|
||
|
IN HAL_QUERY_INFORMATION_CLASS InformationClass,
|
||
|
IN ULONG BufferSize,
|
||
|
OUT PVOID Buffer,
|
||
|
OUT PULONG ReturnedLength
|
||
|
)
|
||
|
{
|
||
|
PAGED_CODE ();
|
||
|
return STATUS_INVALID_LEVEL;
|
||
|
}
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalSetSystemInformation(
|
||
|
IN HAL_SET_INFORMATION_CLASS InformationClass,
|
||
|
IN ULONG BufferSize,
|
||
|
OUT PVOID Buffer
|
||
|
)
|
||
|
{
|
||
|
PAGED_CODE ();
|
||
|
return STATUS_INVALID_LEVEL;
|
||
|
}
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalQueryBusSlots(
|
||
|
IN PBUS_HANDLER BusHandler,
|
||
|
IN ULONG BufferSize,
|
||
|
OUT PULONG SlotNumbers,
|
||
|
OUT PULONG ReturnedLength
|
||
|
)
|
||
|
{
|
||
|
PAGED_CODE ();
|
||
|
return STATUS_NOT_SUPPORTED;
|
||
|
}
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalDeviceControl(
|
||
|
IN PDEVICE_HANDLER_OBJECT DeviceHandler,
|
||
|
IN PDEVICE_OBJECT DeviceObject,
|
||
|
IN ULONG ControlCode,
|
||
|
IN PVOID Buffer OPTIONAL,
|
||
|
IN OUT PULONG BufferLength OPTIONAL,
|
||
|
IN PVOID CompletionContext,
|
||
|
IN PDEVICE_CONTROL_COMPLETION CompletionRoutine
|
||
|
)
|
||
|
{
|
||
|
DEVICE_CONTROL_CONTEXT Context;
|
||
|
|
||
|
if (CompletionRoutine) {
|
||
|
Context.Status = STATUS_NOT_SUPPORTED;
|
||
|
Context.DeviceHandler = DeviceHandler;
|
||
|
Context.ControlCode = ControlCode;
|
||
|
Context.Buffer = Buffer;
|
||
|
Context.BufferLength = BufferLength;
|
||
|
|
||
|
CompletionRoutine (&Context);
|
||
|
}
|
||
|
return STATUS_NOT_SUPPORTED;
|
||
|
}
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalRegisterBusHandler(
|
||
|
IN INTERFACE_TYPE InterfaceType,
|
||
|
IN BUS_DATA_TYPE ConfigurationSpace,
|
||
|
IN ULONG BusNumber,
|
||
|
IN INTERFACE_TYPE ParentBusType,
|
||
|
IN ULONG ParentBusNumber,
|
||
|
IN ULONG SizeofBusExtensionData,
|
||
|
IN PINSTALL_BUS_HANDLER InstallBusHandler,
|
||
|
OUT PBUS_HANDLER *BusHandler
|
||
|
)
|
||
|
{
|
||
|
PAGED_CODE ();
|
||
|
return STATUS_NOT_SUPPORTED;
|
||
|
}
|
||
|
|
||
|
NTSTATUS
|
||
|
xHalSuspendHibernateSystem (
|
||
|
IN PTIME_FIELDS ResumeTime OPTIONAL,
|
||
|
IN PHIBERNATE_CALLBACK SystemCallback OPTIONAL
|
||
|
)
|
||
|
{
|
||
|
return STATUS_NOT_SUPPORTED;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
PBUS_HANDLER
|
||
|
FASTCALL
|
||
|
xHalHandlerForBus (
|
||
|
IN INTERFACE_TYPE InterfaceType,
|
||
|
IN ULONG BusNumber
|
||
|
)
|
||
|
{
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
xHalReferenceHandler (
|
||
|
IN PBUS_HANDLER Handler
|
||
|
)
|
||
|
{
|
||
|
}
|