Aufheben der Bindung von einem Adapter
NDIS ruft die ProtocolUnbindAdapterEx-Funktion eines Protokolltreibers auf, um anzufordern, dass sich der Treiber von einem zugrunde liegenden Adapter auflöst. Als Reprozien von ProtocolBindAdapterEx ruft NDIS ProtocolUnbindAdapterEx auf, um die Bindung an den Adapter zu schließen und die Ressourcen freizugeben, die der Treiber für die Bindung zugewiesen hat.
In ProtocolUnbindAdapterEx ruft ein Protokolltreiber NdisCloseAdapterEx auf, um die Bindung an einen zugrunde liegenden Adapter zu schließen. Der Protokolltreiber übergibt NdisCloseAdapterEx das Handle, das NdisOpenAdapterEx am NdisBindingHandle-Parameter bereitgestellt hat. Dieses Handle identifiziert die Bindung, die NDIS schließen soll.
Protokolltreiber müssen einen Adapter über die ProtocolBindAdapterEx-Funktion oder die ProtocolUnbindAdapterEx-Funktion schließen.
Wenn ein Protokolltreiber einen Vorgang zum Schließen einer Bindung initiieren muss, kann der Treiber NdisUnbindAdapter aufrufen. NdisUnbindAdapter plant ein Arbeitselement, das zu einem NDIS-Aufruf von ProtocolUnbindAdapterEx führt. Dieses Arbeitselement kann ausgeführt werden, bevor der Aufruf von NdisUnbindAdapter zurückgegeben wird. Daher müssen Treiberautoren davon ausgehen, dass das Bindungshandle ungültig ist, nachdem NdisUnbindAdapter zurückgegeben wird.
Wenn ein Protokolltreiber NDIS_STATUS_PENDING von ProtocolUnbindAdapterEx zurückgibt, muss er NdisCompleteUnbindAdapterEx mit dem letzten status aufrufen, um die Bindungsanforderung abzuschließen.
Wenn NDIS NDIS_STATUS_PENDING von NdisCloseAdapterEx zurückgibt, ruft NDIS später die ProtocolCloseAdapterCompleteEx-Funktion des Protokolltreibers auf.
NDIS kann ProtocolUnbindAdapterEx aufrufen, wenn sich die Bindung im Zustand Angehalten befindet.
Nachdem alle nicht gebundenen Vorgänge abgeschlossen sind, befindet sich die Bindung im Unbound-Zustand.