NDK_RESULT_EX结构(ndkpi.h)

NDK_RESULT_EX 结构返回 NDK 请求作的结果。 它与 NDK_RESULT 结构相同,只不过它具有其他 TypeTypeSpecificCompletionOutput 成员。

语法

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

传输的字节数。 此成员的值仅适用于 NdkReceiveNDK_FN_RECEIVE) 请求完成。 该成员未为所有其他 NDK 请求完成定义。

QPContext

通过队列对(QP)发布的所有请求的上下文值。 NDK 使用者在调用 NdkCreateQpNDK_FN_CREATE_QP) 函数以创建 NDK_QP 对象时指定此指针。

RequestContext

发布请求时由 NDK 使用者指定的请求上下文值。

Type

一个 NDK_OPERATION_TYPE 枚举值,该值指定正在完成的作的类型。

ProviderErrorCode

如果 状态 返回STATUS_SUCCESS,则必须 ProviderErrorCode

如果 状态 未返回STATUS_SUCCESS,则 指示 NDK 提供程序尚不支持 ProviderErrorCode 功能或未提供错误代码。 非零 值提供了用于诊断 状态 代码的其他提供程序信息。

ProviderErrorCode 使用仅在 64 位系统上可用的填充。 在 32 位系统上,此填充不可用,当 ProviderErrorCode 返回 时,可能会导致 null 指针。 当内存错误地转换为 TypeSpecificCompletionOutput 指针的值时,会出现此问题。 请务必注意,如果提供程序使用包含 ProviderErrorCode的 NDK 2.1 内存布局,则接口协定会中断,而使用者仍使用此新字段的 NDK 2.0 内存布局。 因此,此结构不再与 2.1 和 2.1 之前的 32 位系统向后兼容。

TypeSpecificCompletionOutput

类型特定的完成输出(如果有)。 如果 类型 成员 NdkOperationTypeReceiveAndInvalidate,则此成员是一个 32 位字段,其中包含在发出此完成信号之前要失效的令牌。 否则,此成员是未定义的。

要求

要求 价值
最低支持的客户端 NDIS 6.40 及更高版本中受支持。
支持的最低服务器 Windows Server 2012 R2
标头 ndkpi.h (包括 Ndkpi.h)

另请参阅

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT