NDK_FN_BIND コールバック関数 (ndkpi.h)
NdkBind (NDK_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
MW にバインドする MR の長さ。
[in] Flags
許可される操作を指定するフラグのビットごとの OR。 次のフラグがサポートされています。
値 | 意味 |
---|---|
|
この要求が正常に完了しても、送信完了キューに完了イベントが生成されないことを示します。 ただし、失敗した要求では、完了キューに完了が生成されます。 |
|
ハードウェアがこの要求の処理を開始する前に、以前のすべての読み取り要求を完了する必要があることを示します。 |
|
接続されているピアのメモリ ウィンドウへの読み取りアクセスを有効にします。 メモリ ウィンドウにアクセスするには、接続されたピアに有効なトークンが必要です。 |
|
接続されているピアのメモリ ウィンドウへの書き込みアクセスを有効にします。 メモリ ウィンドウにアクセスするには、接続されたピアに有効なトークンが必要です。 |
|
NDK プロバイダーに対して、処理のためにハードウェアへの要求を示すのを延期する可能性があることを示します。 このフラグの詳細については、「 NDKPI 遅延処理スキーム」を参照してください。
メモこのフラグは、NDKPI 1.2 (Windows Server 2012 R2) 以降でのみサポートされます。 |
戻り値
NdkBind 関数は、次の NTSTATUS コードのいずれかを返します。
リターン コード | 説明 |
---|---|
|
要求が正常に投稿されました。 作業要求が完了すると、完了エントリが CQ にキューに入れられます。 |
|
キュー ペア (QP) が接続されていません。 |
|
メモリ領域では、メモリ ウィンドウに対して要求されたアクセスの種類は許可されません。 NDK_OP_FLAG_ALLOW_WRITE フラグには、NDK_MR_FLAG_ALLOW_LOCAL_WRITE フラグに登録されたメモリ領域が必要です。 |
|
エラーが発生しました。 |
解説
NdkBind は 、メモリ ウィンドウ (MW) をメモリ領域 (MR) の特定のサブ領域にバインドします。
VirtualAddress パラメーターのアドレスは、メモリ登録中に指定された MDL チェーンによって記述される、仮想連続した領域内のアドレスである必要があります。 アドレスは、プロバイダーによってメモリ領域のインデックスとして扱われる必要があります。 プロバイダーがバッファーの内容を読み取りまたは書き込むための有効な仮想アドレスとしてアドレスを使用することはできません。
この呼び出しが返されると、リモート トークンは NdkGetRemotetokenFromMw 関数 (NDK_FN_GET_REMOTE_TOKEN_FROM_MW) で使用できるようになります。
この関数は、0 から始まる仮想アドレスをサポートしていません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートされていません。NDIS 6.30 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | Windows |
ヘッダー | ndkpi.h (Ndkpi.h を含む) |
IRQL | <=DISPATCH_LEVEL |