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
|
|
)
|
|
{
|
|
}
|