struttura RECEIVE_TOKEN_INFORMATION_HEADER (storport.h)
La struttura RECEIVE_TOKEN_INFORMATION_HEADER contiene informazioni restituite come stato da un'operazione di trasferimento dati offload.
Sintassi
typedef struct {
UCHAR AvailableData[4];
UCHAR ResponseToServiceAction : 5;
UCHAR Reserved1 : 3;
UCHAR OperationStatus : 7;
UCHAR Reserved2 : 1;
UCHAR OperationCounter[2];
UCHAR EstimatedStatusUpdateDelay[4];
UCHAR CompletionStatus;
UCHAR SenseDataFieldLength;
UCHAR SenseDataLength;
UCHAR TransferCountUnits;
UCHAR TransferCount[8];
UCHAR SegmentsProcessed[2];
UCHAR Reserved3[6];
UCHAR SenseData[ANYSIZE_ARRAY];
} RECEIVE_TOKEN_INFORMATION_HEADER, *PRECEIVE_TOKEN_INFORMATION_HEADER;
Members
AvailableData[4]
Quantità di dati disponibili nella matrice SenseData ed eventuali informazioni aggiuntive sui risultati.
ResponseToServiceAction
Codice di risposta che indica l'azione del comando per cui è destinata la risposta. I codici di azione del servizio sono i seguenti.
Valore | Significato |
---|---|
SERVICE_ACTION_POPULATE_TOKEN | Le informazioni sulla risposta sono relative a un comando POPULATE TOKEN. |
SERVICE_ACTION_WRITE_USING_TOKEN | Le informazioni sulla risposta sono relative a un comando WRITE USING TOKEN. |
Reserved1
Riservato.
OperationStatus
Stato corrente dell'operazione di copia. Lo stato può essere uno dei valori seguenti.
Valore | Significato |
---|---|
0x01 | Operazione riuscita. |
0x02 | Operazione completata senza esito positivo. |
0x04 | L'operazione è stata completata correttamente, ma l'iniziatore di copia deve verificare che tutti i dati siano stati trasferiti. |
0x10 | L'operazione è in corso. Lo stato dell'operazione in primo piano o in background è sconosciuto. |
0x11 | L'operazione è in corso in primo piano. |
0x12 | L'operazione è in corso in background. |
0x60 | L'operazione è stata terminata. Possibilmente da una prenotazione di risorse esistente. |
Reserved2
Riservato.
OperationCounter[2]
Numero di comandi elaborati per l'operazione di copia corrente.
EstimatedStatusUpdateDelay[4]
Tempo consigliato, in millisecondi, di attesa prima di inviare il successivo comando RECEIVE COPY STATUS per informazioni aggiornate sull'operazione di copia corrente.
CompletionStatus
Codice di stato SCSI per l'operazione di copia del comando.
SenseDataFieldLength
Lunghezza, in byte, dell'intera area dati disponibile per i dati sense. Questo valore è sempre >= SenseDataLength.
SenseDataLength
Lunghezza, in byte, dei dati in SenseData.
TransferCountUnits
Unità di byte applicate a TransferCount. Ogni espansione di unità è un esponente in base 2. Il valore moltiplicatore di TRANSFER_COUNT_UNITS_KIBIBYTES, ad esempio, è 1024 e non 1000. Le unità definite sono le seguenti.
Valore | Significato |
---|---|
TRANSFER_COUNT_UNITS_BYTES | Il conteggio dei trasferimenti è in byte. |
TRANSFER_COUNT_UNITS_KIBIBYTES | Il conteggio dei trasferimenti è espresso in kilobyte. |
TRANSFER_COUNT_UNITS_MEBIBYTES | Il conteggio dei trasferimenti è in megabyte. |
TRANSFER_COUNT_UNITS_GIBIBYTES | Il numero di trasferimenti è espresso in gigabyte. |
TRANSFER_COUNT_UNITS_TEBIBYTES | Il conteggio dei trasferimenti è espresso in terabyte. |
TRANSFER_COUNT_UNITS_PEBIBYTES | Il conteggio dei trasferimenti è in petabyte. |
TRANSFER_COUNT_UNITS_EXBIBYTES | Il conteggio dei trasferimenti è espresso in exabyte. |
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS | Il conteggio dei trasferimenti non è un esponente, ma in unità di lunghezza del blocco logico. |
TransferCount[8]
Lunghezza dei dati trasferiti nell'operazione. Il tipo di unità in TransferCountUnits viene applicato a questo valore per assegnare il conteggio totale dei byte.
SegmentsProcessed[2]
Numero di segmenti elaborati per l'operazione di trasferimento dei dati. I segmenti sono unità di lunghezza di copia usate internamente dal provider di copia di un dispositivo di archiviazione. Nei sistemi Windows questo valore è riservato e le applicazioni devono ignorare questo membro.
Reserved3[6]
Riservato.
SenseData[ANYSIZE_ARRAY]
Dati sense restituiti per l'operazione di copia.
Commenti
Se RECEIVE_TOKEN_INFORMATION_HEADER è per un'operazione di comando POPULATE TOKEN e il comando è stato completato correttamente, una struttura RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER sarà presente anche dopo SenseData in corrispondenza di un offset di SenseDataFieldLength dall'inizio della matrice SenseData. La struttura RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER conterrà il token creato come rappresentazione dei dati (ROD) per i parametri di intervallo inviati con il comando .
Tutti i valori multibyte sono in formato big endian. Prima della valutazione, questi valori devono essere convertiti in modo che corrispondano al formato endian della piattaforma corrente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Intestazione | storport.h (include Scsi.h, Minitape.h, Storport.h) |