DH_DbgPrint(MID_TRACE,("Adapter %d was rejected\n",
Table->table[i].dwIndex));
}
- Error = NotifyAddrChange(NULL, NULL);
#if 0
+ Error = NotifyAddrChange(NULL, NULL);
if (Error != NO_ERROR)
break;
#else
- if (AdapterCount)
- break;
- else
- Sleep(3000);
+ Sleep(3000);
#endif
} while (TRUE);
case OID_GEN_HARDWARE_STATUS:
*Result = NdisHardwareStatusReady;
return STATUS_SUCCESS;
-
+ case OID_GEN_MEDIA_CONNECT_STATUS:
+ *Result = NdisMediaStateConnected;
+ return STATUS_SUCCESS;
default:
return STATUS_INVALID_PARAMETER;
}
return NULL;
}
-NTSTATUS GetInterfaceConnectionStatus
-( PIP_INTERFACE Interface, PULONG Result ) {
- NTSTATUS Status = TcpipLanGetDwordOid
- ( Interface, OID_GEN_HARDWARE_STATUS, Result );
- if( NT_SUCCESS(Status) ) switch( *Result ) {
- case NdisHardwareStatusReady:
+NTSTATUS GetInterfaceConnectionStatus(PIP_INTERFACE Interface, PULONG Result)
+{
+ NTSTATUS Status;
+
+ /* Query OID_GEN_MEDIA_CONNECT_STATUS for connection status information */
+ Status = TcpipLanGetDwordOid(Interface, OID_GEN_MEDIA_CONNECT_STATUS, Result);
+ if (!NT_SUCCESS(Status))
+ return Status;
+
+ /* Translate the result into MIB_IF_OPER_STATUS_XXX */
+ if (*Result == NdisMediaStateConnected)
+ {
+ /* Up and running */
*Result = MIB_IF_OPER_STATUS_OPERATIONAL;
- break;
- case NdisHardwareStatusInitializing:
- *Result = MIB_IF_OPER_STATUS_CONNECTING;
- break;
- case NdisHardwareStatusReset:
- *Result = MIB_IF_OPER_STATUS_DISCONNECTED;
- break;
- case NdisHardwareStatusNotReady:
+ }
+ else
+ {
+ /* Down */
*Result = MIB_IF_OPER_STATUS_DISCONNECTED;
- break;
- case NdisHardwareStatusClosing:
- default:
- *Result = MIB_IF_OPER_STATUS_NON_OPERATIONAL;
- break;
}
- return Status;
+
+ return STATUS_SUCCESS;
}