111 lines
1.9 KiB
C
111 lines
1.9 KiB
C
/*++
|
|
|
|
Copyright (c) 1997-2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
init.c
|
|
|
|
Abstract:
|
|
|
|
This module provides the initialization and unload functions.
|
|
|
|
Author:
|
|
|
|
Andy Thornton (andrewth) 20-Oct-97
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "mfp.h"
|
|
|
|
NTSTATUS
|
|
DriverEntry(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN PUNICODE_STRING RegistryPath
|
|
);
|
|
|
|
VOID
|
|
MfUnload(
|
|
IN PDRIVER_OBJECT DriverObject
|
|
);
|
|
|
|
#ifdef ALLOC_PRAGMA
|
|
#pragma alloc_text(INIT, DriverEntry)
|
|
#pragma alloc_text(PAGE, MfUnload)
|
|
#endif
|
|
|
|
PDRIVER_OBJECT MfDriverObject;
|
|
|
|
NTSTATUS
|
|
DriverEntry(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN PUNICODE_STRING RegistryPath
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This is the entry point to MF.SYS and performs initialization.
|
|
|
|
Arguments:
|
|
|
|
DriverObject - The system owned driver object for MF
|
|
|
|
RegistryPath - The path to MF's service entry
|
|
|
|
Return Value:
|
|
|
|
STATUS_SUCCESS
|
|
|
|
--*/
|
|
{
|
|
|
|
DriverObject->DriverExtension->AddDevice = MfAddDevice;
|
|
DriverObject->MajorFunction[IRP_MJ_PNP] = MfDispatchPnp;
|
|
DriverObject->MajorFunction[IRP_MJ_POWER] = MfDispatchPower;
|
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = MfDispatchNop;
|
|
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = MfDispatchNop;
|
|
DriverObject->DriverUnload = MfUnload;
|
|
|
|
//
|
|
// Remember the driver object
|
|
//
|
|
|
|
MfDriverObject = DriverObject;
|
|
|
|
DEBUG_MSG(1, ("Completed DriverEntry for Driver 0x%08x\n", DriverObject));
|
|
|
|
return STATUS_SUCCESS;
|
|
}
|
|
|
|
VOID
|
|
MfUnload(
|
|
IN PDRIVER_OBJECT DriverObject
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This is called to reverse any operations performed in DriverEntry before a
|
|
driver is unloaded.
|
|
|
|
Arguments:
|
|
|
|
DriverObject - The system owned driver object for MF
|
|
|
|
Return Value:
|
|
|
|
STATUS_SUCCESS
|
|
|
|
--*/
|
|
{
|
|
PAGED_CODE();
|
|
|
|
DEBUG_MSG(1, ("Completed Unload for Driver 0x%08x\n", DriverObject));
|
|
|
|
return;
|
|
}
|
|
|