NDK_RESULT_EX 構造体 (ndkpi.h)

NDK_RESULT_EX構造体は、NDK 要求操作の結果を返します。 これは、追加の Type メンバーと TypeSpecificCompletionOutput メンバーを持つ点を除き、NDK_RESULT構造体と同じです。

構文

typedef struct _NDK_RESULT_EX {
  NTSTATUS           Status;
  ULONG              BytesTransferred;
  PVOID              QPContext;
  PVOID              RequestContext;
  NDK_OPERATION_TYPE Type;
  ULONG              ProviderErrorCode;
  ULONG_PTR          TypeSpecificCompletionOutput;
} NDK_RESULT_EX;

メンバー

Status

NDK 要求の完了状態。

BytesTransferred

転送されたバイト数。 このメンバーの値は、 NdkReceive (NDK_FN_RECEIVE) 要求の完了に対してのみ有効です。 メンバーは、他のすべての NDK 要求の完了に対して未定義です。

QPContext

キュー ペア (QP) 経由でポストされるすべての要求のコンテキスト値。 NDK コンシューマーは、 NdkCreateQp (NDK_FN_CREATE_QP) 関数を呼び出してNDK_QPオブジェクトを 作成するときに、このポインターを指定しました。

RequestContext

要求が投稿されたときに NDK コンシューマーによって指定された要求コンテキスト値。

Type

完了する操作の種類を指定するNDK_OPERATION_TYPE列挙値。

ProviderErrorCode

Status がSTATUS_SUCCESSを返す場合、ProviderErrorCode0 である必要があります。

Status がSTATUS_SUCCESSを返さない場合、NDK プロバイダーがまだ ProviderErrorCode 機能をサポートしていないか、エラー コードが提供されていないことを示します0 以外の値は、状態コードを診断するための追加のプロバイダー情報を提供します

ProviderErrorCode では、64 ビット システムでのみ使用できるパディングが使用されます。 32 ビット システムでは、この埋め込みは使用できません。 ProviderErrorCode が0 を返すと、 null ポインターが発生する可能性があります。 この問題は、 メモリが TypeSpecificCompletionOutput ポインターの値として正しくキャストされていない場合に発生します。 プロバイダーが ProviderErrorCode を含む NDK 2.1 メモリ レイアウトを使用している場合、インターフェイス コントラクトが壊れていることに注意してください。一方、コンシューマーは、この新しいフィールドを使用せずに NDK 2.0 メモリ レイアウトを引き続き使用します。 そのため、この構造体は、2.1 バージョンから 2.1 より前のバージョンの 32 ビット システムでは下位互換性がなくなりました。

TypeSpecificCompletionOutput

型固有の入力候補の出力 (存在する場合)。 Type メンバーが NdkOperationTypeReceiveAndInvalidate の場合、このメンバーは 32 ビット フィールドです。このフィールドには、この完了を通知する前に無効にするトークンが含まれます。 それ以外の場合、このメンバーは未定義です。

要件

要件
サポートされている最小のクライアント NDIS 6.40 以降でサポートされています。
サポートされている最小のサーバー Windows Server 2012 R2
Header ndkpi.h (Ndkpi.h を含む)

こちらもご覧ください

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT