從配接器解除系結
NDIS 會呼叫通訊協定驅動程式的 ProtocolUnbindAdapterEx 函式,要求驅動程式從基礎配接器解除系結。 做為 ProtocolBindAdapterEx的倒數,NDIS 會呼叫 ProtocolUnbindAdapterEx 來關閉介面卡的系結,並釋放驅動程式為系結配置的資源。
在 ProtocolUnbindAdapterEx中,通訊協定驅動程式會呼叫 NdisCloseAdapterEx 來關閉與基礎介面卡的系結。 通訊協定驅動程式會傳遞NdisCloseAdapterEx在其NdisBindingHandle參數所提供的NdisOpenAdapterEx控制碼。 此控制碼會識別 NDIS 應該關閉的系結。
通訊協定驅動程式必須關閉 ProtocolBindAdapterEx 函式或 ProtocolUnbindAdapterEx 函式中的配接器。
如果通訊協定驅動程式必須起始作業以關閉系結,驅動程式可以呼叫 NdisUnbindAdapter。 NdisUnbindAdapter 會排程會導致 NDIS 呼叫 ProtocolUnbindAdapterEx的工作專案。 此工作專案可以在 呼叫 NdisUnbindAdapter 傳回之前執行。 因此,驅動程式寫入器必須假設系結控制碼在 NdisUnbindAdapter 傳回之後無效。
如果通訊協定驅動程式從 ProtocolUnbindAdapterEx傳回NDIS_STATUS_PENDING,則必須呼叫具有最終狀態的 NdisCompleteUnbindAdapterEx 來完成系結要求。
如果 NDIS 從 NdisCloseAdapterEx傳回NDIS_STATUS_PENDING,NDIS 稍後會呼叫通訊協定驅動程式的 ProtocolCloseAdapterCompleteEx 函 式。
如果系結處於 Paused 狀態,NDIS 可以呼叫 ProtocolUnbindAdapterEx 。
完成所有解除系結作業之後,系結會處於未系結狀態。