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 傳回 零時,可能會導致 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 |
標頭 | ndkpi.h (包括 Ndkpi.h) |