共用方式為


PROTOCOL_CM_DEREGISTER_SAP回呼函式 (ndis.h)

需要 ProtocolCmDeregisterSap 函式。 NDIS 會呼叫此函式,要求呼叫管理員代表聯機導向用戶端取消註冊 SAP。

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

語法

PROTOCOL_CM_DEREGISTER_SAP ProtocolCmDeregisterSap;

NDIS_STATUS ProtocolCmDeregisterSap(
  [in] NDIS_HANDLE CallMgrSapContext
)
{...}

參數

[in] CallMgrSapContext

指定呼叫管理員配置的呼叫管理員內容區域的句柄,其中呼叫管理員會維護其每個 SAP 狀態資訊。 呼叫管理員從其提供此句柄給 NDIS ProtocolCmRegisterSap 函式。

傳回值

ProtocolCmDeregisterSap 會傳回其作業的狀態 (s) ,如下所示:

傳回碼 Description
NDIS_STATUS_SUCCESS
表示呼叫管理員已成功移除 SAP 註冊,並釋放配置以維護每個 SAP 資訊的任何資源。
NDIS_STATUS_PENDING
表示呼叫管理員會完成要求,以異步方式取消註冊 SAP。 呼叫管理員必須呼叫 NdisCmDeregisterSapComplete 在作業完成時發出 NDIS 訊號。

備註

ProtocolCmDeregisterSap 會視需要與網路控制裝置或其他媒體特定代理程序通訊,以取消註冊網路上的 SAP。 這類動作可能包括,但不限於:

  • 與切換硬體通訊
  • 與網路控制站通訊
  • 與其他媒體特定網路代理程序通訊
如果需要呼叫管理員才能與網路控制代理程序通訊,例如網路交換器,它應該使用其 ProtocolBindAdapterEx 函式中建立的網路控制代理程式的虛擬連線。 獨立呼叫管理員會透過基礎迷你埠驅動程序來通訊,方法是呼叫 NdisCoSendNetBufferLists。 提供整合式呼叫管理支援的迷你埠驅動程序永遠不會呼叫 NdisCoSendNetBufferLists。 相反地,它們會直接透過網路傳輸數據。

此外, ProtocolCmDeregisterSap 必須在每個 SAP 區域中釋放其每個 SAP 區域中的任何動態配置資源,並提供 CallMgrSapContext,以及在將控制權傳回 NDIS 之前釋出狀態區域本身。

例子

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

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

PROTOCOL_CM_DEREGISTER_SAP MyCmDeregisterSap;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCmDeregisterSap(
    NDIS_HANDLE  CallMgrSapContext
    )
  {...}

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

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

規格需求

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

另請參閱

NdisCmDeregisterSapComplete

NdisCoSendNetBufferLists

ProtocolBindAdapterEx

ProtocolCmRegisterSap