NDKPI 作業要求送信要件
コンシューマーの作業要求送信ルール
NDK コンシューマーは、イニシエーターキューに以下の種類の作業要求を送信します。
- NdkBind (NDK_FN_BIND)
- NdkFastRegister (NDK_FN_FAST_REGISTER)
- NdkInvalidate (NDK_FN_INVALIDATE)
- NdkRead (NDK_FN_READ)
- NdkSend (NDK_FN_SEND)
- NdkSendAndInvalidate (NDK_FN_SEND_AND_INVALIDATE)
- NdkWrite (NDK_FN_WRITE)
コンシューマーは、受信キューに NdkReceive (NDK_FN_RECEIVE) 要求を送信します。
コンシューマーは、これらの要求をすべて、シリアル化された方法で NDK_QP または NDK_SRQ の同じ個々のキューに送信します。 言い換えると、NDK_QP または NDK_SRQ に属する同じ個々のキュー上で、コンシューマーが作業要求関数を 2 回同時に呼び出すことはありません。
これは、例えば、NdkReceive 呼び出しは同時に行われず、NdkSend 呼び出しと NdkWrite 呼び出しは同時に行われませんが、NdkReceive 呼び出しと NdkWrite 呼び出しは同じ NDK_QP 上で同時に行われる可能性があることを意味します。
プロバイダーの作業要求送信ルール
プロバイダーは、コンシューマーによってシリアル化されることが保証されているため、上記の作業要求関数内に冗長なロックを設定しないでください。
プロバイダーは NdkFlush(NDK_FN_FLUSH) 呼び出しを、同じ NDK_QP 上の作業要求呼び出しと同時に処理できる必要があります。
プロバイダーは、同じ NDK_QP 上の作業要求呼び出しと同時に呼び出される可能性のある NdkCloseConnector 呼び出し (NDK_QP の後続 NDK_CONNECTOR オブジェクト上に) を処理できる必要があります。