PROTOCOL_CL_INCOMING_CLOSE_CALL回呼函式 (ndis.h)
ProtocolClIncomingCloseCall 函式會由所有連線導向的 NDIS 用戶端使用。 所有這類客戶端都必須具有功能完整的 ProtocolClIncomingCloseCall 函式。
語法
PROTOCOL_CL_INCOMING_CLOSE_CALL ProtocolClIncomingCloseCall;
void ProtocolClIncomingCloseCall(
[in] NDIS_STATUS CloseStatus,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PVOID CloseData,
[in] UINT Size
)
{...}
參數
[in] CloseStatus
指定狀態,指出連線終止的原因,這通常NDIS_STATUS_SUCCESS表示呼叫的遠端合作物件要求關閉連線。 任何其他值表示網路上的問題導致呼叫管理員終止連線。
[in] ProtocolVcContext
針對要關閉連線的 VC,指定用戶端每個 VC 內容區域的句柄。 無論 CloseStatus 的值為何,用戶端都無法在儲存在此內容區域中的 NDIsVcHandle 所指定的 VC 上傳送或接收數據。
[in] CloseData
緩衝區的指標,其中包含通訊協定特定的關閉訊息,可能是由呼叫管理員透過網路接收的遠端用戶端所提供,或者此參數可以是 NULL。
當 CloseStatus NDIS_STATUS_SUCCESS時,如果基礎網路媒體不支援在關閉連線時傳輸數據,則此參數為 NULL 。 不過,任何特定的呼叫管理員可能會定義結構,以在網路上發生問題所造成的呼叫終止時,將其他診斷資訊傳遞給其用戶端。
[in] Size
指定 在 CloseData 的緩衝區位元組大小,如果 CloseData 為 NULL,則為零。
傳回值
無
備註
對 ProtocolClIncomingCloseCall 的呼叫表示已發生下列其中一項:
- 呼叫管理員已透過網路收到要求,以關閉已建立的連線,由 NdisVcHandle 識別,用戶端儲存在其每個 VC 內容區域中 的 ProtocolVcContext 。
- 呼叫管理員偵測到網路問題會防止在已建立的連線上進行進一步的數據傳輸。
無論指定的 VC 是單一點或多點連線, ProtocolClIncomingCloseCall 都必須呼叫 NdisCloseCall ,以確認用戶端不會嘗試傳送或預期接收此特定 VC 上的數據。 如果呼叫管理員建立了此 VC,ProtocolClIncomingCloseCall 應該會在呼叫 NdisCloseCall 之後傳回控制權。 呼叫管理員必須負責終結或重複使用它所建立的任何 VC。
如果用戶端最初為傳出呼叫建立此 VC,ProtocolClIncomingCloseCall 可以在呼叫 NdisClDropParty 之後視需要多次執行下列其中一項動作,如果有的話,以及 NdisCloseCall:
- 如果 CloseStatus 是NDIS_STATUS_SUCCESS,請使用 NdisCoDeleteVc 卸除 VC,然後釋放用戶端的每個 VC 內容區域,或準備在 後續呼叫 NdisCoCreateVc 時重複使用。
- 如果 CloseStatus 是NDIS_STATUS_SUCCESS,請保留用戶端建立的 VC,並準備其每個 VC 內容區域,以便在 後續呼叫 NdisClMakeCall 時重複使用。
- 否則,如果使用 NdisCoDeleteVc 卸除 VC,並在呼叫管理員指出網路變得無法運作時釋放其每個 VC 內容區域。
例子
若要定義 ProtocolClIncomingCloseCall 函式,您必須先提供函式宣告來識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析、 靜態驅動程式驗證程式 (SDV) ,以及其他驗證工具尋找錯誤,而且是撰寫 Windows 作業系統驅動程式的需求。例如,若要定義名為 「 MyClIncomingCloseCall」 的 ProtocolClIncomingCloseCall 函式,請使用 PROTOCOL_CL_INCOMING_CLOSE_CALL 類型,如下列程式代碼範例所示:
PROTOCOL_CL_INCOMING_CLOSE_CALL MyClIncomingCloseCall;
然後,實作您的函式,如下所示:
_Use_decl_annotations_
VOID
MyClIncomingCloseCall(
NDIS_STATUS CloseStatus,
NDIS_HANDLE ProtocolVcContext,
PVOID CloseData,
UINT Size
)
{...}
PROTOCOL_CL_INCOMING_CLOSE_CALL函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations批註可確保使用頭檔中套用至PROTOCOL_CL_INCOMING_CLOSE_CALL函式類型的註釋。 如需函數宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。
如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 ProtocolClIncomingCloseCall (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 ProtocolClIncomingCloseCall (NDIS 5.1) ) 。 |
目標平台 | Windows |
標頭 | ndis.h (包含 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |