📄 lan91c96_ndis.c
字号:
/*
*
*
*Description:
* Contains the functions to be exported.
*
*
*/
#include <Ndis.h>
#include "LAN91C96_Adapter.h"
#include "LAN91C96_Proto.h"
#ifdef NDIS50_MINIPORT
#pragma message( "-------------------- SMSC LAN91C96 NDIS 5.0 Miniport Driver --------------------" )
#endif
DBGPARAM dpCurSettings = {
TEXT("LAN91C96"), {
TEXT("Init"),TEXT("Critical"),TEXT("Interrupt"),TEXT("Message"),
TEXT(""),TEXT(""),TEXT(""),TEXT(""),
TEXT(""),TEXT(""),TEXT(""),TEXT(""),
TEXT(""),TEXT(""),TEXT("Warnings"), TEXT("Errors")},
0xffffffff
};
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
NDIS_MINIPORT_CHARACTERISTICS Characteristics;
NDIS_HANDLE LAN91C96_WrapperHandle;
NDIS_STATUS Status=NDIS_STATUS_SUCCESS;
RETAILMSG(1, (TEXT("LAN91C96 WindowsCE Driver \r\n")));
RETAILMSG(0, (TEXT("LAN91C96 => DriverEntry\r\n")));
//Initialize the Wrapper.
NdisMInitializeWrapper( &LAN91C96_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 = NULL; //Optional
Characteristics.DisableInterruptHandler = LAN91C96_MiniportDisableInterrupt;
Characteristics.EnableInterruptHandler = LAN91C96_MiniportEnableInterrupt;
Characteristics.HaltHandler = LAN91C96_MiniportHalt; //Required
Characteristics.HandleInterruptHandler = LAN91C96_MiniPortHandleInterrupt; //Required
Characteristics.InitializeHandler = LAN91C96_MiniportInitialize; //Required
Characteristics.ISRHandler = LAN91C96_MiniportISR; //Required
Characteristics.QueryInformationHandler = LAN91C96_MiniportQueryInformation; //Required
Characteristics.ReconfigureHandler = NULL;
Characteristics.ResetHandler = LAN91C96_MiniportReset; //Required
Characteristics.SendHandler = LAN91C96_MiniportSend; //Required
Characteristics.SetInformationHandler = LAN91C96_MiniportSetInformation;
Characteristics.TransferDataHandler = NULL;
//Register as an NDIS MiniPort Driver.
Status = NdisMRegisterMiniport(LAN91C96_WrapperHandle,
(PNDIS_MINIPORT_CHARACTERISTICS) &Characteristics,
sizeof(Characteristics));
if(Status != NDIS_STATUS_SUCCESS)
{
NdisTerminateWrapper (LAN91C96_WrapperHandle, NULL);
RETAILMSG(ZONE_INIT, (TEXT("LAN91C96 : NdisMRegisterMiniport Failed (%0X) !!\r\n"), Status));
}
RETAILMSG(ZONE_INIT, (TEXT("LAN91C96 <= DriverEntry\r\n")));
return(Status);
}
BOOL __stdcall DllEntry (
HANDLE hDLL,
DWORD dwReason,
LPVOID lpReserved
)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
DEBUGREGISTER(hDLL);
RETAILMSG(ZONE_INIT, (TEXT("LAN91C96 : DLL Process Attach\r\n")));
break;
case DLL_PROCESS_DETACH:
RETAILMSG(ZONE_INIT, (TEXT("LAN91C96 : DLL Process Detach\r\n")));
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -