共用方式為


NDK_FN_SEND_AND_INVALIDATE回呼函式 (ndkpi.h)

NdkSendAndInvalidateNDK_FN_SEND_AND_INVALIDATE) 函式會在 NDK 佇列組 (QP) 上張貼傳送要求,並提供在接收完成時在遠端對等端失效的令牌。

語法

NDK_FN_SEND_AND_INVALIDATE NdkFnSendAndInvalidate;

NTSTATUS NdkFnSendAndInvalidate(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           ULONG Flags,
  [in]           UINT32 RemoteToken
)
{...}

參數

[in] pNdkQp

NDK 佇列組 (QP) 物件的指標(NDK_QP)。

[in, optional] RequestContext

要在此要求之 NDK_RESULT_EX 結構 成員的 RequestContext 中傳回的內容值。

pSgl

SGE (NDK_SGE) 結構的陣列,表示要傳送之數據的緩衝區。

[in] nSge

pSgl 參數中所指定陣列中的 SGE 結構數目。

[in] Flags

指定允許之作業的位 OR 旗標。 支援下列旗標:

價值 意義
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
如果此要求成功,它就不會在輸出完成佇列中產生完成事件。 不過,如果失敗,它會在輸出完成佇列中產生完成事件。
NDK_OP_FLAG_READ_FENCE
0x00000002
在硬體開始處理此要求之前,必須先完成所有先前的讀取要求。
NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT
0x00000004
對等的完成佇列會產生通知。 如需 NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT的詳細資訊,請參閱一節。
NDK_OP_FLAG_INLINE
0x00000040
表示 SGE 所參考的記憶體應該內嵌傳輸。 此外,NDK_SGE 專案中的 MemoryRegionToken 值可能無效。 內嵌要求不需要將 SGE 清單中的項目數目限制為 MaxInitiatorRequestSge 建立佇列組時指定的值。 內嵌傳輸的記憶體數量必須位於佇列配對的內嵌數據限制內。
NDK_OP_FLAG_DEFER
0x00000200
向 NDK 提供者指出,它可能會延遲表示硬體要求進行處理。 如需此旗標的詳細資訊,請參閱 NDKPI 延遲處理設定

注意 此旗標僅支援 NDKPI 1.2 (Windows Server 2012 R2) 和更新版本。

[in] RemoteToken

接收完成時,在對等端失效的遠端令牌。 如果傳送對等指定了無效的令牌,接收對等端的 NDK 提供者必須中止連線,如較低層傳輸規則所指定。

傳回值

NdkSendAndInvalidate 函式會傳回下列其中一個 NTSTATUS 程式代碼。

傳回碼 描述
STATUS_SUCCESS
已成功張貼要求。 完成專案會在工作要求完成時排入完成佇列 (CQ)。
STATUS_CONNECTION_INVALID
佇列組 (QP) 未連線。
其他狀態代碼
發生錯誤。

言論

如果您發出多個相關的傳送要求,您可以使用 NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT 旗標。 在群組中的最後一個要求上設定此旗標。

發出多個相關的傳送要求時,NDK 取用者可以使用這個旗標。 NDK 取用者只會在最後一個相關的傳送要求上設定此旗標。 對等會正常接收所有傳送要求。 不過,當對等收到最後一個傳送要求時(已設定 NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT 旗標的要求),對等的完成佇列會產生通知。 通知會在接收要求完成之後產生。 除非接收者先前已呼叫 NdkArmCqNDK_FN_ARM_CQ) 函式,且通知類型設定為 NDK_CQ_NOTIFY_SOLICITED,否則這個旗標對接收者沒有意義。

注意 具有錯誤的要求一律符合 NDK_CQ_NOTIFY_SOLICITED 通知類型。
 
如果接收對等不支援遠端無效,則 NDK 取用者應該確保不會呼叫 NdkSendAndInvalidate 函式。 取用者必須使用頻外機制交涉這項功能,或不使用此函式。 如果取用者違反這項需求,則提供者的行為未定義。

由於呼叫此函式而新增至完成佇列的任何 NDK_RESULT_EX 結構,都必須為 Type 成員指定 NdkOperationTypeSend。 請注意,您不需要指定 TypeSpecificCompletionOutputNDK_RESULT_EX 結構成員的值。

要求

要求 價值
最低支援的用戶端 不支援,NDIS 6.40 和更新版本中支援。
支援的最低伺服器 Windows Server 2012 R2
目標平臺 窗戶
標頭 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另請參閱

NDKPI 完成處理需求

NDKPI 延遲處理配置

NDKPI 工作要求張貼需求

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT_EX

NDK_SGE