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を返す場合、ProviderErrorCode は 0 である必要があります。
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 を含む) |