PROTOCOL_CL_DEREGISTER_SAP_COMPLETE回呼函式 (ndis.h)

ProtocolClDeregisterSapComplete 函式是由連接導向的 NDIS 用戶端使用。 接受連入呼叫的連接導向 NDIS 用戶端必須具有 ProtocolClDeregisterSapComplete 函式,才能完成以 NdisClDeregisterSap 起始的異步操作。 否則,這類通訊協定驅動程式的已註冊 ProtocolClDeregisterSapComplete 函式 可以直接傳回控制權。

注意 您必須使用 PROTOCOL_CL_DEREGISTER_SAP_COMPLETE 類型來宣告函式。 如需詳細資訊,請參閱下列範例一節。
 

語法

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

參數

[in] Status

指定用戶端要求取消註冊其 SAP 的最終狀態,這可以是下列其中一項:

NDIS_STATUS_SUCCESS

SAP 已關閉。 代表用戶端先前註冊 SAP 的 NdisSapHandle ,用戶端儲存在其 ProtocolSapContext 區域中的 SAP 現在無效。

NDIS_STATUS_FAILURE

NDIS 已將 AF 的狀態標示為「關閉」,因此當用戶端呼叫 時, NdisSapHandle 所代表的相關聯 SAP 已經釋放 發生 NdisClDeregisterSap

NDIS_STATUS_XXX

呼叫管理員因為某些 CM 決定的原因而無法關閉 SAP 的要求,而 NDIS 會傳播其傳回的狀態 ProtocolCmDeregisterSap 函式至用戶端。

[in] ProtocolSapContext

指定用戶端提供給其每個 SAP 內容區域的句柄,最初會使用 NdisClRegisterSap 傳遞至 NDIS。 呼叫管理員成功取消註冊此 SAP 之後,用戶端就可以釋放其內容區域,或準備此內容區域以供重複使用。

傳回值

備註

ProtocolClDeregisterSapComplete 的呼叫表示用戶端先前呼叫 NdisClDeregisterSap 已經由呼叫管理員處理。

除非呼叫管理員因某些 CM 決定的原因而無法取消註冊,否則當呼叫 ProtocolClDeregisterSapComplete 時,客戶端應該考慮 NdisSapHandle 無效。 因此, ProtocolClDeregisterSapComplete 可以釋放用戶端所配置的每個 SAP 內容區域,或準備在 後續呼叫 NdisClRegisterSap 中重複使用。

例子

若要定義 ProtocolClDeregisterSapComplete 函式,您必須先提供函式宣告,以識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程序驗證器 (SDV) ,以及其他驗證工具會尋找錯誤,而且這是撰寫 Windows 操作系統驅動程式的需求。

例如,若要定義名為 「 MyClDeregisterSapComplete」 的 ProtocolClDeregisterSapComplete 函式,請使用 PROTOCOL_CL_DEREGISTER_SAP_COMPLETE 類型,如下列程式代碼範例所示:

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

然後,實作您的函式,如下所示:

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 註釋新增至函式定義。 Use_decl_annotations註釋可確保使用頭檔中套用至PROTOCOL_CL_DEREGISTER_SAP_COMPLETE函式類型的批註。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。

如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 ProtocolClDeregisterSapComplete (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 ProtocolClDeregisterSapComplete (NDIS 5.1) ) 。
目標平台 Windows
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLofreesideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap