Condividi tramite


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)

Vedi anche

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT