NDK_RESULT_EX结构(ndkpi.h)
NDK_RESULT_EX 结构返回 NDK 请求作的结果。 它与 NDK_RESULT 结构相同,只不过它具有其他 Type 和 TypeSpecificCompletionOutput 成员。
语法
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_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) |