My driver don’t returns from NdisCloseAdapter in win 2000
but in win 4.0 it’s works fine
here is some code:
NTSTATUS DriverEntry( )
{
NdisInitializeEvent(&Event);
RtlZeroMemory( &aProtocolChar,sizeof(NDIS_PROTOCOL_CHARACTERISTICS));
aProtocolChar.MajorNdisVersion = 4;
aProtocolChar.MinorNdisVersion = 0;
aProtocolChar.Reserved = 0;
aProtocolChar.OpenAdapterCompleteHandler = OnOpenAdapterDone;
aProtocolChar.CloseAdapterCompleteHandler = OnCloseAdapterDone;
aProtocolChar.SendCompleteHandler = OnSendDone;
aProtocolChar.TransferDataCompleteHandler = OnTransferDataDone;
aProtocolChar.ResetCompleteHandler = OnResetDone;
aProtocolChar.RequestCompleteHandler = OnRequestDone;
aProtocolChar.ReceiveHandler = OnReceiveStub;
aProtocolChar.ReceiveCompleteHandler = OnReceiveDoneStub;
aProtocolChar.StatusHandler = OnStatus;
aProtocolChar.StatusCompleteHandler = OnStatusDone;
aProtocolChar.Name = aProtoName;
NdisRegisterProtocol( &aStatus,&NdisProtocolHandle,&aProtocolChar,sizeof(NDIS_PROTOCOL_CHARACTERISTICS));
theDriverObject->DriverUnload = OnUnload;
NdisOpenAdapter(&aStatus,&ErrorStatus,&NdisBindingHandle,&MediumIndex,MediumArray,sizeof (MediumArray),
NdisProtocolHandle,NULL,&aNetCardName,0,NULL);
//complete this binding
if(aStatus==NDIS_STATUS_PENDING)
{
NdisWaitEvent(&Event, 0);
aStatus = GlobalStatus;
NdisResetEvent(&Event);
}
//if we have error then exit
if (aStatus!=NDIS_STATUS_SUCCESS)
{
NdisResetEvent(&Event);
}
NdisResetEvent(&Event);
return STATUS_SUCCESS;
}
VOID OnUnload( IN PDRIVER_OBJECT DriverObject )
{
NdisCloseAdapter(&aStatus,NdisBindingHandle);
//complete this unbinding
if(aStatus==NDIS_STATUS_PENDING)
{
NdisWaitEvent(&Event, 0);
}
NdisDeregisterProtocol(&aStatus,NdisProtocolHandle);
return;
}
VOID
OnOpenAdapterDone( )
{
//must set event to complete binding
GlobalStatus=Status;
NdisSetEvent(&Event);
return;
}
VOID
OnCloseAdapterDone( )
{
DbgPrint(“OnCloseAdapterDone called\n”);
//must set event to complete unbinding
NdisSetEvent(&Event);
return;
}
well i know that “OnCloseAdapterDone called” but
NdisCloseAdapter not return in win 2000…
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com