RECEIVE_TOKEN_INFORMATION_HEADER structure (storport.h)
La structure RECEIVE_TOKEN_INFORMATION_HEADER contient des informations retournées en tant que status à partir d’une opération de transfert de données de déchargement.
Syntaxe
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;
Membres
AvailableData[4]
Quantité de données disponibles dans le tableau SenseData et toutes les informations supplémentaires sur les résultats.
ResponseToServiceAction
Code de réponse indiquant l’action de commande pour laquelle la réponse est destinée. Les codes d’action de service sont les suivants.
Valeur | Signification |
---|---|
SERVICE_ACTION_POPULATE_TOKEN | Les informations de réponse concernent une commande POPULATE TOKEN. |
SERVICE_ACTION_WRITE_USING_TOKEN | Les informations de réponse concernent une commande WRITE USING TOKEN. |
Reserved1
Réservé.
OperationStatus
Status actuelle de l’opération de copie. La status peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
0x01 | L’opération s’est terminée avec succès. |
0x02 | L’opération s’est terminée sans succès. |
0x04 | L’opération s’est terminée correctement, mais l’initiateur de copie doit vérifier que toutes les données ont été transférées. |
0x10 | L’opération est en cours. L’état de l’opération de premier plan ou d’arrière-plan est inconnu. |
0x11 | L’opération est en cours au premier plan. |
0x12 | L’opération est en cours en arrière-plan. |
0x60 | L’opération a été terminée. Éventuellement par une réservation de ressources existante. |
Reserved2
Réservé.
OperationCounter[2]
Nombre de commandes traitées pour l’opération de copie en cours.
EstimatedStatusUpdateDelay[4]
Temps recommandé, en millisecondes, d’attente avant d’envoyer la commande RECEIVE COPY STATUS suivante pour obtenir des informations mises à jour sur l’opération de copie en cours.
CompletionStatus
SCSI status code pour l’opération de commande de copie.
SenseDataFieldLength
Longueur, en octets, de la totalité de la zone de données disponible pour les données de sens. Cette valeur est toujours >= SenseDataLength.
SenseDataLength
Longueur, en octets, des données dans SenseData.
TransferCountUnits
Unités d’octets appliquées à TransferCount. Chaque expansion d’unité est un exposant en base 2. La valeur multiplicateur de TRANSFER_COUNT_UNITS_KIBIBYTES, par exemple, est 1024 et non 1 000. Les unités définies sont les suivantes.
Valeur | Signification |
---|---|
TRANSFER_COUNT_UNITS_BYTES | Le nombre de transferts est en octets. |
TRANSFER_COUNT_UNITS_KIBIBYTES | Le nombre de transferts est en kilo-octets. |
TRANSFER_COUNT_UNITS_MEBIBYTES | Le nombre de transferts est en mégaoctets. |
TRANSFER_COUNT_UNITS_GIBIBYTES | Le nombre de transferts est en gigaoctets. |
TRANSFER_COUNT_UNITS_TEBIBYTES | Le nombre de transferts est en téraoctets. |
TRANSFER_COUNT_UNITS_PEBIBYTES | Le nombre de transferts est en pétaoctets. |
TRANSFER_COUNT_UNITS_EXBIBYTES | Le nombre de transferts est en exabytes. |
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS | Le nombre de transferts n’est pas un exposant, mais en unités de longueur de bloc logique. |
TransferCount[8]
Longueur des données transférées dans l’opération. Le type d’unité dans TransferCountUnits est appliqué à cette valeur pour donner le nombre total d’octets.
SegmentsProcessed[2]
Nombre de segments traités pour l’opération de transfert de données. Les segments sont des unités de longueur de copie utilisées en interne par le fournisseur de copie d’un périphérique de stockage. Sur les systèmes Windows, cette valeur est réservée et les applications doivent ignorer ce membre.
Reserved3[6]
Réservé.
SenseData[ANYSIZE_ARRAY]
Détecter les données retournées pour l’opération de copie.
Remarques
Si RECEIVE_TOKEN_INFORMATION_HEADER est destiné à une opération de commande POPULATE TOKEN et que la commande s’est terminée correctement, une structure RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER est également présente après SenseData à un décalage de SenseDataFieldLength par rapport au début du tableau SenseData . La structure RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER contient le jeton créé en tant que représentation de données (ROD) pour les paramètres de plage envoyés avec la commande .
Toutes les valeurs multioctets sont au format big endian. Avant l’évaluation, ces valeurs doivent être converties pour correspondre au format endian de la plateforme actuelle.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
En-tête | storport.h (inclure Scsi.h, Minitape.h, Storport.h) |