共用方式為


NDK_FN_BIND回呼函式 (ndkpi.h)

NdkBindNDK_FN_BIND) 函式會將記憶體視窗系結至記憶體區域 (MR) 的特定子區域。

語法

NDK_FN_BIND NdkFnBind;

NTSTATUS NdkFnBind(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
  [in]           NDK_MR *pMr,
  [in]           NDK_MW *pMw,
  [in]           PVOID VirtualAddress,
  [in]           SIZE_T Length,
  [in]           ULONG Flags
)
{...}

參數

[in] pNdkQp

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

[in, optional] RequestContext

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

[in] pMr

NDK 記憶體區域 (MR) 物件的指標(NDK_MR)。

[in] pMw

NDK 記憶體視窗 (MW) 物件的指標(NDK_MW)。

[in] VirtualAddress

虛擬位址,必須大於或等於 MR 的 MDL 虛擬位址,小於 MR 的 MDL 虛擬位址加上 Length 參數中的值。

使用 MmGetMdlVirtualAddress 巨集來取得 MR 的 MDL 虛擬位址。

[in] Length

要系結至兆瓦的 MR 長度。

[in] Flags

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

價值 意義
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
表示此要求的成功完成不會在輸出完成佇列中產生完成事件。 不過,失敗的要求會在完成佇列中產生完成。
NDK_OP_FLAG_READ_FENCE
0x00000002
表示硬體開始處理此要求之前,必須先完成所有先前的讀取要求。
NDK_OP_FLAG_ALLOW_REMOTE_READ
0x00000008
針對任何連線的對等,啟用記憶體視窗的讀取許可權。 若要存取記憶體視窗,連接的對等必須具有有效的令牌。
NDK_OP_FLAG_ALLOW_REMOTE_WRITE
0x00000030
針對任何已連線的對等,啟用記憶體視窗的寫入許可權。 若要存取記憶體視窗,連接的對等必須具有有效的令牌。
NDK_OP_FLAG_DEFER
0x00000200
向 NDK 提供者指出,它可能會延遲表示硬體要求進行處理。 如需此旗標的詳細資訊,請參閱 NDKPI 延遲處理設定

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

傳回值

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

傳回碼 描述
STATUS_SUCCESS
已成功張貼要求。 完成專案會在工作要求完成時排入 CQ 佇列。
STATUS_CONNECTION_INVALID
佇列組 (QP) 未連線。
STATUS_ACCESS_VIOLATION
記憶體區域不允許記憶體視窗所要求的存取類型。 NDK_OP_FLAG_ALLOW_WRITE旗標需要向 NDK_MR_FLAG_ALLOW_LOCAL_WRITE 旗標註冊的記憶體區域。
其他狀態代碼
發生錯誤。

言論

NdkBind 將記憶體視窗 (MW) 系結至記憶體區域的特定子區域 (MR)。

VirtualAddress 參數中的地址必須是記憶體註冊期間指定之 MDL 鏈結所描述之虛擬連續區域中的位址。 提供者必須將地址視為記憶體區域中的索引。 提供者不得使用地址作為讀取或寫入緩衝區內容的有效虛擬位址。

此呼叫傳回之後,遠端令牌將會與 NdkGetRemotetokenFromMw 函式 (NDK_FN_GET_REMOTE_TOKEN_FROM_MW) 搭配使用。

此函式不支援以零起始的虛擬位址。

要求

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

另請參閱

mmGetMdlVirtualAddress

NDKPI 延遲處理配置

NDKPI 工作要求張貼需求

NDK_FN_GET_REMOTE_TOKEN_FROM_MW

NDK_MR

NDK_MW

NDK_QP

NDK_RESULT