81 lines
1.4 KiB
C
81 lines
1.4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1999 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
usb8023.c
|
||
|
|
||
|
|
||
|
Author:
|
||
|
|
||
|
ervinp
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel mode
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <WDM.H>
|
||
|
|
||
|
|
||
|
#include "usb8023.h"
|
||
|
#include "debug.h"
|
||
|
|
||
|
#ifdef ALLOC_PRAGMA
|
||
|
#pragma alloc_text(INIT, DriverEntry)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Installable driver initialization entry point.
|
||
|
This entry point is called directly by the I/O system.
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
DriverObject - pointer to the driver object
|
||
|
|
||
|
RegistryPath - pointer to a unicode string representing the path,
|
||
|
to driver-specific key in the registry.
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
STATUS_SUCCESS if successful,
|
||
|
STATUS_UNSUCCESSFUL otherwise
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
BOOLEAN registered;
|
||
|
PAGED_CODE();
|
||
|
|
||
|
DBGVERBOSE(("DriverEntry"));
|
||
|
|
||
|
KeInitializeSpinLock(&globalSpinLock);
|
||
|
InitializeListHead(&allAdaptersList);
|
||
|
|
||
|
INITDEBUG();
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Kernel drivers register themselves as the handler for
|
||
|
* AddDevice, UnloadDriver, and IRPs at this point.
|
||
|
* But instead, we'll register with RNDIS, so NDIS becomes the owner of all
|
||
|
* PDOs for which this driver is loaded.
|
||
|
*/
|
||
|
registered = RegisterRNDISMicroport(DriverObject, RegistryPath);
|
||
|
|
||
|
ASSERT(registered);
|
||
|
return (registered) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL;
|
||
|
}
|
||
|
|
||
|
|