135 lines
3.5 KiB
C
135 lines
3.5 KiB
C
|
/*+
|
|||
|
* file: DC21X4.c
|
|||
|
*
|
|||
|
* Copyright (C) 1992-1995 by
|
|||
|
* Digital Equipment Corporation, Maynard, Massachusetts.
|
|||
|
* All rights reserved.
|
|||
|
*
|
|||
|
* This software is furnished under a license and may be used and copied
|
|||
|
* only in accordance of the terms of such license and with the
|
|||
|
* inclusion of the above copyright notice. This software or any other
|
|||
|
* copies thereof may not be provided or otherwise made available to any
|
|||
|
* other person. No title to and ownership of the software is hereby
|
|||
|
* transferred.
|
|||
|
*
|
|||
|
* The information in this software is subject to change without notice
|
|||
|
* and should not be construed as a commitment by digital equipment
|
|||
|
* corporation.
|
|||
|
*
|
|||
|
* Digital assumes no responsibility for the use or reliability of its
|
|||
|
* software on equipment which is not supplied by digital.
|
|||
|
*
|
|||
|
*
|
|||
|
* Abstract: This file is the main file of the NDIS 4.0 miniport driver
|
|||
|
* for DEC's 21X4 Ethernet Adapter family.
|
|||
|
*
|
|||
|
* Author: Philippe Klein
|
|||
|
*
|
|||
|
* Revision History:
|
|||
|
*
|
|||
|
* phk 30-Jul-1994 Initial entry
|
|||
|
*
|
|||
|
-*/
|
|||
|
|
|||
|
#include <precomp.h>
|
|||
|
|
|||
|
#if __DBG
|
|||
|
#include "version.h"
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#pragma NDIS_INIT_FUNCTION(DriverEntry)
|
|||
|
|
|||
|
/*+
|
|||
|
* DriverEntry
|
|||
|
*
|
|||
|
* Routine description:
|
|||
|
*
|
|||
|
* Driver Entry is the initial entry point of the DC21X4 driver called
|
|||
|
* by the operating system.
|
|||
|
*
|
|||
|
-*/
|
|||
|
|
|||
|
|
|||
|
// This is the NT-specific driver entry point.
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
DriverEntry(
|
|||
|
IN PDRIVER_OBJECT DriverObject,
|
|||
|
IN PUNICODE_STRING RegistryPath
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
{
|
|||
|
NDIS_STATUS NdisStatus;
|
|||
|
NDIS_HANDLE DC21X4WrapperHandle;
|
|||
|
NDIS_MINIPORT_CHARACTERISTICS DC21X4Char;
|
|||
|
|
|||
|
#if __DBG
|
|||
|
DbgPrint("\n\n DC21X4 NDIS4.0 miniport driver %s - Built %s %s\n\n",
|
|||
|
DRIVER_VERSION_STR,__DATE__,__TIME__);
|
|||
|
#endif
|
|||
|
|
|||
|
// Initialize the wrapper.
|
|||
|
#if __DBG
|
|||
|
DbgPrint("NdisMInitializeWrapper\n");
|
|||
|
#endif
|
|||
|
|
|||
|
NdisMInitializeWrapper(
|
|||
|
&DC21X4WrapperHandle,
|
|||
|
DriverObject,
|
|||
|
RegistryPath,
|
|||
|
NULL
|
|||
|
);
|
|||
|
|
|||
|
#if _DBG
|
|||
|
DbgPrint(" NdisMrapperHandle = %x\n",DC21X4WrapperHandle);
|
|||
|
#endif
|
|||
|
|
|||
|
// Initialize the characteristics before registering the MAC
|
|||
|
|
|||
|
DC21X4Char.MajorNdisVersion = DC21X4_NDIS_MAJOR_VERSION;
|
|||
|
DC21X4Char.MinorNdisVersion = DC21X4_NDIS_MINOR_VERSION;
|
|||
|
DC21X4Char.CheckForHangHandler = DC21X4CheckforHang;
|
|||
|
DC21X4Char.DisableInterruptHandler = DC21X4DisableInterrupt;
|
|||
|
DC21X4Char.EnableInterruptHandler = DC21X4EnableInterrupt;
|
|||
|
DC21X4Char.HaltHandler = DC21X4Halt;
|
|||
|
DC21X4Char.HandleInterruptHandler = DC21X4HandleInterrupt;
|
|||
|
DC21X4Char.InitializeHandler = DC21X4Initialize;
|
|||
|
DC21X4Char.ISRHandler = DC21X4Isr;
|
|||
|
DC21X4Char.QueryInformationHandler = DC21X4QueryInformation;
|
|||
|
DC21X4Char.ReconfigureHandler = NULL;
|
|||
|
DC21X4Char.ResetHandler = DC21X4Reset;
|
|||
|
DC21X4Char.SendHandler = DC21X4Send;
|
|||
|
DC21X4Char.SetInformationHandler = DC21X4SetInformation;
|
|||
|
DC21X4Char.TransferDataHandler = NULL;
|
|||
|
DC21X4Char.ReturnPacketHandler = DC21X4ReturnPacket;
|
|||
|
DC21X4Char.SendPacketsHandler = NULL; //DC21X4SendPackets;
|
|||
|
DC21X4Char.AllocateCompleteHandler = DC21X4AllocateComplete;
|
|||
|
#if __DBG
|
|||
|
DbgPrint("NdisMRegisterMiniport\n");
|
|||
|
#endif
|
|||
|
|
|||
|
NdisStatus = NdisMRegisterMiniport(
|
|||
|
DC21X4WrapperHandle,
|
|||
|
&DC21X4Char,
|
|||
|
sizeof(DC21X4Char)
|
|||
|
);
|
|||
|
|
|||
|
if (NdisStatus != NDIS_STATUS_SUCCESS) {
|
|||
|
// Mac Registration completes on failure
|
|||
|
#if __DBG
|
|||
|
DbgPrint(" NdisMRegisterMiniport failed: Status = %x\n",NdisStatus);
|
|||
|
#endif
|
|||
|
NdisTerminateWrapper(DC21X4WrapperHandle, NULL);
|
|||
|
}
|
|||
|
return NdisStatus;
|
|||
|
}
|
|||
|
|