diff --git a/drivers/network/ndis/ndis/miniport.c b/drivers/network/ndis/ndis/miniport.c index ad5f7741e6..8fdcc86d0e 100644 --- a/drivers/network/ndis/ndis/miniport.c +++ b/drivers/network/ndis/ndis/miniport.c @@ -2506,6 +2506,16 @@ NdisIAddDevice( Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL, LinkageKeyBuffer, QueryTable, NULL, NULL); + + /* If Status is bad then print to debug log and try again since this might be a race condition. */ + if (!NT_SUCCESS(Status)) + { + NDIS_DbgPrint(MIN_TRACE, ("Can't get miniport device name for LinkageKeyBuffer '%S' Status is (%x)\n", + LinkageKeyBuffer, Status)); + Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL, LinkageKeyBuffer, + QueryTable, NULL, NULL); + } + ExFreePool(LinkageKeyBuffer); if (!NT_SUCCESS(Status)) {