Dear Guys,
I'm trying to write a miniport driver for wifi device, and its lower edge is UART interface, but when I debugging , I found that system wouldn't call my MiniportInitalize function I specified in DriverEntry.
The DriverEntry function's code is below:

///////////////////////////////////////////////////////////////////////////////////////////////////
// DriverEntry
// Installable driver initialization entry point.
// This entry point is called directly by the I/O system.
//
// Arguments:
// IN DriverObject
// pointer to the driver object
//
// IN RegistryPath
// pointer to a unicode string representing the path,
// to driver-specific key in the registry.
//
// Return Value:
// Status
//
NDIS_STATUS DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
NDIS_STATUS status;
NDIS_HANDLE wrapperHandle;
NDIS_MINIPORT_CHARACTERISTICS miniportChars;
UartWifiDebugPrint(DBG_INIT, DBG_TRACE, __FUNCTION__"++");
UartWifiDebugPrint(DBG_INIT, DBG_INFO, "Compiled at %s on %s", __TIME__, __DATE__);
#ifdef DBG
// DbgBreakPoint();
#endif
// register our driver with NDIS
NdisMInitializeWrapper(&wrapperHandle, DriverObject, RegistryPath, NULL);
if (wrapperHandle == NULL)
{
status = NDIS_STATUS_FAILURE;
UartWifiDebugPrint(DBG_INIT, DBG_ERR, __FUNCTION__"--. STATUS %x", status);
return status;
}
// fill in miniport characteristics structure with our handlers
NdisZeroMemory(&miniportChars, sizeof(NDIS_MINIPORT_CHARACTERISTICS));
// TODO: set ndis version
miniportChars.MajorNdisVersion = 5;
#ifdef NDIS51_MINIPORT
miniportChars.MinorNdisVersion = 1;
#else
miniportChars.MinorNdisVersion = 0;
#endif
miniportChars.CheckForHangHandler = UartWifiCheckForHang;
miniportChars.HaltHandler = UartWifiHalt;
miniportChars.InitializeHandler = UartWifiInitialize;
miniportChars.QueryInformationHandler = UartWifiQueryInformation;
// reconfigure handler currently is never called by NDIS
// miniportChars.ReconfigureHandler = UartWifiReconfigure;
miniportChars.ResetHandler = UartWifiReset;
miniportChars.ReturnPacketHandler = UartWifiReturnPacket;

miniportChars.SendPacketsHandler = UartWifiSendPackets;

miniportChars.SetInformationHandler = UartWifiSetInformation;
miniportChars.AllocateCompleteHandler = UartWifiAllocateComplete;
// interrupt handlers
miniportChars.HandleInterruptHandler = UartWifiHandleInterrupt;
miniportChars.ISRHandler = UartWifiISR;
// miniportChars.DisableInterruptHandler = UartWifiDisableInterrupt;
// miniportChars.EnableInterruptHandler = UartWifiEnableInterrupt;
#ifdef NDIS51_MINIPORT
miniportChars.CancelSendPacketsHandler = UartWifiCancelSendPackets;
miniportChars.PnPEventNotifyHandler = UartWifiPnPEventNotify;
miniportChars.AdapterShutdownHandler = UartWifiAdapterShutdown;
#endif
// register our miniport handlers
status = NdisMRegisterMiniport(wrapperHandle, &miniportChars, sizeof(NDIS_MINIPORT_CHARACTERISTICS));
if (status != NDIS_STATUS_SUCCESS)
{
NdisTerminateWrapper(wrapperHandle, NULL);
}
UartWifiDebugPrint(DBG_INIT, DBG_TRACE, __FUNCTION__"--. STATUS %x", status);
return status;
}

Is there anything wrong? Or the Miniport driver cann't communicates with UART interface on PC?