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

已传输的字节数。 此成员的值仅对 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 必须为

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

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

TypeSpecificCompletionOutput

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

要求

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

另请参阅

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT