Partager via


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)

Voir aussi

RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER