NdisClDropParty 函式 (ndis.h)
NdisClDropParty 會從用戶端的多點 VC 卸除一方。
語法
NDIS_STATUS NdisClDropParty(
[in] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in, optional] UINT Size
);
參數
[in] NdisPartyHandle
指定要在多點連線上卸除之合作物件的句柄。 用戶端從 先前呼叫 NdisClAddParty 或 NdisClMakeCall 取得此句柄。
[in, optional] Buffer
呼叫端配置的緩衝區指標,其中包含要傳輸的任何數據,以關閉遠端節點上合作物件的多點連線。 視基礎媒體而定,此指標可以是 NULL。
[in, optional] Size
指定 Buffer 的位元組大小,如果 Buffer 為 NULL,則為零。
傳回值
當 NdisClDropParty 傳回NDIS_STATUS_PENDING以外的任何專案時,客戶端應該對其進行內部呼叫 ProtocolClDropPartyComplete 函式 。 否則,NDIS 會在完成此作業時呼叫用戶端的 ProtocolClDropPartyComplete 函式。
備註
用戶端通常會在下列任一情況下呼叫 NdisClDropParty :
-
從 ProtocolClIncomingDropParty 函式 ,可從多點連線中移除指定的物件。
當遠端節點上的一方關閉其 與 NdisCloseCall 的連線時,就會發生這種情況。 當 NDIS 呼叫本機用戶端的 ProtocolClDropPartyComplete 函式時,它可以在 ClientPartyContext 上釋放或重複使用用戶端維護此合作對象的狀態內容區域。
-
在用戶端呼叫 NdisCloseCall 之前,用戶端原本使用 NdisClMakeCall 設定的多點連線上最後一方。
針對這類用戶端起始的關閉自己的多點呼叫,客戶端必須呼叫 NdisClDropParty 一或多次,才能卸除多點 VC 上的所有其他剩餘方。
一般指導方針是,客戶端必須呼叫 NdisClDropParty 多次,因為它呼叫 NdisClAddParty ,且特定 NdisVcHandle 是從 NdisClMakeCall 取得,才能關閉其 與 NdisCloseCall 的多點連線。 由於遠端合作物件可以起始其連線的關閉,因此導致對本機用戶端的呼叫 ProtocolClIncomingDropParty 函式,本機客戶端必須追蹤其多點 VM 上作用中的合作物件數目,才能知道必須對 NdisClDropParty 進行多少呼叫,才能呼叫 NdisCloseCall。
不過,當用戶端最初設定其多點連線時,不需要用戶端傳遞 NdisCloseCall 所傳回的相同 NdisPartyHandle。 只要用戶端在其對 NdisClDropParty 的呼叫中釋放 NdisClAddParty 或 NdisClMakeCall 對其呼叫 NdisClDropParty 傳回的每個 NdisPartyHandle,用戶端就可以依任何順序釋放其多點 VC,後面接著最後一方對 NdisCloseCall 的呼叫。 用戶端關閉其多點呼叫之後,就可以釋放原本使用 NdisCoDeleteVc 建立的 VC。
NdisClDropParty 的呼叫端應該在進行此呼叫時,將輸入 NdisPartyHandle 視為無效。 如果此句柄儲存在所配置的合作對象內容區域中,則用戶端的如果 ProtocolClDropPartyComplete 函式重新初始化其每一方內容區域,以便在卸除合作物件時重複使用,則應該將句柄變數重設為 NULL。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 NdisClDropParty (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 NdisClDropParty (NDIS 5.1) ) 。 |
目標平台 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Protocol_Driver_Function (ndis) |