NdisUnchainBufferAtFront(Packet, &Buffer);
if (!Buffer)
break;
-
+
/* Get the backing memory */
NdisQueryBuffer(Buffer, &Data, &Length);
-
+
/* Free the buffer */
NdisFreeBuffer(Buffer);
ExFreePool(Data);
}
}
-
+
/* Free the packet descriptor */
NdisFreePacket(Packet);
}
while (CurrentEntry != &GlobalAdapterList)
{
AdapterContext = CONTAINING_RECORD(CurrentEntry, NDISUIO_ADAPTER_CONTEXT, ListEntry);
-
+
/* Check if the device name matches */
if (RtlEqualUnicodeString(&AdapterContext->DeviceName, DeviceName, TRUE))
{
KeReleaseSpinLock(&GlobalAdapterListLock, OldIrql);
return AdapterContext;
}
-
+
CurrentEntry = CurrentEntry->Flink;
}
KeReleaseSpinLock(&GlobalAdapterListLock, OldIrql);
-
+
return NULL;
}
/* Lock the adapter context */
KeAcquireSpinLock(&AdapterContext->Spinlock, &OldIrql);
-
+
/* Decrement the open count */
AdapterContext->OpenCount--;