⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lan91c96_ndis.c

📁 ARM9基于WINDOWSCE的BSP源代码
💻 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 + -