struttura NDK_RESULT_EX (ndkpi.h)
La struttura NDK_RESULT_EX restituisce i risultati di un'operazione di richiesta NDK. È identico alla struttura NDK_RESULT , ad eccezione del fatto che include membri Type e TypeSpecificCompletionOutput aggiuntivi.
Sintassi
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;
Members
Status
Stato di completamento della richiesta NDK.
BytesTransferred
Il numero di byte trasferiti. Il valore di questo membro è valido solo per i completamenti della richiesta NdkReceive (NDK_FN_RECEIVE). Il membro non è definito per tutti gli altri completamenti delle richieste NDK.
QPContext
Valore di contesto per tutte le richieste inviate tramite una coppia di code (QP). Il consumer NDK ha specificato questo puntatore quando ha chiamato la funzione NdkCreateQp (NDK_FN_CREATE_QP) per creare l'oggetto NDK_QP .
RequestContext
Valore del contesto della richiesta specificato dal consumer NDK quando viene inviata una richiesta.
Type
Valore di enumerazione NDK_OPERATION_TYPE che specifica il tipo di operazione da completare.
ProviderErrorCode
Se Status restituisce STATUS_SUCCESS, ProviderErrorCode deve essere zero.
Se Status non restituisce STATUS_SUCCESS, zero indica che il provider NDK non supporta ancora la funzionalità ProviderErrorCode o non ha fornito un codice di errore. Un valore diverso da zero fornisce informazioni aggiuntive sul provider per diagnosticare il codice di stato .
ProviderErrorCode usa la spaziatura interna disponibile solo nei sistemi a 64 bit. Nei sistemi a 32 bit questa spaziatura interna non è disponibile e quando ProviderErrorCode restituisce zero, può causare puntatori Null . Questo problema si verifica quando viene eseguito il cast della memoria in modo non corretto come valore per il puntatore TypeSpecificCompletionOutput . È importante notare che il contratto di interfaccia viene interrotto se il provider usa un layout di memoria NDK 2.1 che include ProviderErrorCode, mentre il consumer usa ancora un layout di memoria NDK 2.0 senza questo nuovo campo. Pertanto, questa struttura non è più compatibile con le versioni precedenti per i sistemi a 32 bit tra 2.1 e versioni precedenti a 2.1.
TypeSpecificCompletionOutput
Output di completamento specifico del tipo, se presente. Se il membro Type è NdkOperationTypeReceiveAndInvalidate, questo membro è un campo a 32 bit che contiene il token da invalidare prima di segnalare il completamento. In caso contrario, questo membro non è definito.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.40 e versioni successive. |
Server minimo supportato | Windows Server 2012 R2 |
Intestazione | ndkpi.h (include Ndkpi.h) |