📄 lan91c111_ndis.c
字号:
/*
*
* Copyright (c) Standard MicroSystems Corporation. All Rights Reserved.
*
* LAN91C111 Driver for Windows CE .NET
*
* Revision History
*_______________________________________________________________________________
* Author Date Version Description
*_______________________________________________________________________________
* Pramod Bhardwaj 6/18/2002 0.1 Beta Release
* 7/15/2002 1.0 Release
* 1/22/2003 1.1 Removed some platform dependencies
* 3/27/2003 1.2 Used alloc interrupt
* TScho 2/15/2004 1.2.0 Performance changes (Beta)
* TScho 2/20/2004 1.2.1 Multi-packet indication (Beta)
* TScho 2/25/2004 1.2.2 Multicast fixed (Beta)
* TScho 2/26/2004 2.1 Release for CE 5.0
*_______________________________________________________________________________
*
*Description:
* Contains the functions to be exported.
*/
#include <Ndis.h>
#include "LAN91C111_Adapter.h"
#include "LAN91C111_Proto.h"
static char _LAN91C111_NDIS_C_Date_Code_[] = "082304";
DBGPARAM dpCurSettings = {
TEXT("LAN91C111"), {
TEXT("Init"), TEXT("Interrupt"), TEXT("Transmit"), TEXT("Receive"),
TEXT("Receive Overrun"), TEXT("MultiCast"), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT(""), TEXT(""),
TEXT(""), TEXT(""), TEXT("Warnings"), TEXT("Errors")},
0xffffffff
};
const NDIS_PHYSICAL_ADDRESS HighestAcceptedMax = NDIS_PHYSICAL_ADDRESS_CONST(-1,-1);
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
NDIS_MINIPORT_CHARACTERISTICS Characteristics;
NDIS_HANDLE LAN91C111_WrapperHandle;
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
RETAILMSG(1, (TEXT("\tSMSC LAN91C111 WindowsCE 5.0 (NDIS%d.%d) Driver V2.1 Build#%d\r\n"), DRIVER_NDIS_MAJOR_VERSION, DRIVER_NDIS_MINOR_VERSION, DRIVER_BUILD_NUM));
//Initialize the Wrapper.
NdisMInitializeWrapper(&LAN91C111_WrapperHandle, DriverObject, RegistryPath, NULL);
//Set up our Characteristics, but clear it first
NdisZeroMemory((PVOID) &Characteristics, sizeof(Characteristics));
Characteristics.MajorNdisVersion = DRIVER_NDIS_MAJOR_VERSION;
Characteristics.MinorNdisVersion = DRIVER_NDIS_MINOR_VERSION;
Characteristics.CheckForHangHandler = LAN91C111_MiniportCheckforHang; //Optional
Characteristics.DisableInterruptHandler = LAN91C111_MiniportDisableInterrupt;
Characteristics.EnableInterruptHandler = NULL;
Characteristics.HaltHandler = LAN91C111_MiniportHalt; //Required
Characteristics.HandleInterruptHandler = LAN91C111_MiniPortHandleInterrupt; //Required
Characteristics.InitializeHandler = LAN91C111_MiniportInitialize; //Required
Characteristics.ISRHandler = LAN91C111_MiniportISR; //Required
Characteristics.QueryInformationHandler = LAN91C111_MiniportQueryInformation; //Required
Characteristics.ReconfigureHandler = NULL;
Characteristics.ResetHandler = LAN91C111_MiniportReset; //Required
Characteristics.SendHandler = LAN91C111_MiniportSend; //Required
Characteristics.SetInformationHandler = LAN91C111_MiniportSetInformation;
Characteristics.ReturnPacketHandler = NULL;
//Register as an NDIS MiniPort Driver
Status = NdisMRegisterMiniport(LAN91C111_WrapperHandle,
(NDIS_MINIPORT_CHARACTERISTICS *) &Characteristics,
sizeof(NDIS_MINIPORT_CHARACTERISTICS));
if(Status != NDIS_STATUS_SUCCESS)
{
NdisTerminateWrapper (LAN91C111_WrapperHandle, NULL);
PrintDebugMsg(ZONE_INIT, (TEXT("LAN91C111 : NdisMRegisterMiniport Failed (%04x) !!\r\n"), Status));
}
PrintDebugMsg(ZONE_INIT, (TEXT("LAN91C111 <= DriverEntry\r\n")));
return(Status);
}
BOOL __stdcall DllEntry (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
DEBUGREGISTER(hDLL);
PrintDebugMsg(ZONE_INIT, (TEXT("LAN91C111: DLL Process Attach\r\n")));
break;
case DLL_PROCESS_DETACH:
PrintDebugMsg(ZONE_INIT, (TEXT("LAN91C111: DLL Process Detach\r\n")));
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -