NDK_FN_SEND回呼函式 (ndkpi.h)

NdkSend (NDK_FN_SEND) 函式會在 QP) (NDK 佇列配對上張貼傳送要求。

語法

NDK_FN_SEND NdkFnSend;

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

參數

[in] pNdkQp

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

[in, optional] RequestContext

要在此要求之 NDK_RESULT 結構的 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) 及更新版本才支援此旗標。

傳回值

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

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

備註

NdkSend 會在佇列配對上張貼傳送要求, (QP) 。

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

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

注意 以錯誤完成的要求一律符合 NDK_CQ_NOTIFY_SOLICITED 通知類型。
 

規格需求

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

另請參閱

NDKPI 延後處理配置

NDKPI 工作要求張貼需求

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE