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 返回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) |