estructura de RECEIVE_TOKEN_INFORMATION_HEADER (storport.h)
La estructura RECEIVE_TOKEN_INFORMATION_HEADER contiene información devuelta como estado de una operación de transferencia de datos de descarga.
Sintaxis
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;
Miembros
AvailableData[4]
La cantidad de datos disponibles en la matriz SenseData y cualquier información adicional sobre los resultados.
ResponseToServiceAction
Código de respuesta que indica la acción de comando para la que es la respuesta. Los códigos de acción del servicio son los siguientes.
Valor | Significado |
---|---|
SERVICE_ACTION_POPULATE_TOKEN | La información de respuesta es para un comando POPULATE TOKEN. |
SERVICE_ACTION_WRITE_USING_TOKEN | La información de respuesta es para un comando WRITE USING TOKEN. |
Reserved1
Reservado.
OperationStatus
Estado actual de la operación de copia. El estado puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
0x01 | La operación se ha completado correctamente. |
0x02 | La operación se completó sin éxito. |
0x04 | La operación se completó correctamente, pero el iniciador de copia debe comprobar que se transfirieron todos los datos. |
0x10 | La operación está en curso. Se desconoce el estado de la operación en primer plano o en segundo plano. |
0x11 | La operación está en curso en primer plano. |
0x12 | La operación está en curso en segundo plano. |
0x60 | La operación finalizó. Posiblemente mediante una reserva de recursos existente. |
Reserved2
Reservado.
OperationCounter[2]
Número de comandos procesados para la operación de copia actual.
EstimatedStatusUpdateDelay[4]
Tiempo recomendado, en milisegundos, para esperar antes de enviar el siguiente comando RECEIVE COPY STATUS para obtener información actualizada sobre la operación de copia actual.
CompletionStatus
Código de estado SCSI para la operación de comando de copia.
SenseDataFieldLength
Longitud, en bytes, de todo el área de datos disponible para los datos de detección. Este valor siempre >es = SenseDataLength.
SenseDataLength
Longitud, en bytes, de los datos de SenseData.
TransferCountUnits
Unidades de bytes aplicadas a TransferCount. Cada expansión de unidad es un exponente en base 2. El valor multiplicador de TRANSFER_COUNT_UNITS_KIBIBYTES, por ejemplo, es 1024 y no 1000. Las unidades definidas son las siguientes.
Valor | Significado |
---|---|
TRANSFER_COUNT_UNITS_BYTES | El recuento de transferencias está en bytes. |
TRANSFER_COUNT_UNITS_KIBIBYTES | El recuento de transferencias está en kilobytes. |
TRANSFER_COUNT_UNITS_MEBIBYTES | El recuento de transferencias está en megabytes. |
TRANSFER_COUNT_UNITS_GIBIBYTES | El recuento de transferencias está en gigabytes. |
TRANSFER_COUNT_UNITS_TEBIBYTES | El recuento de transferencias está en terabytes. |
TRANSFER_COUNT_UNITS_PEBIBYTES | El recuento de transferencias está en petabytes. |
TRANSFER_COUNT_UNITS_EXBIBYTES | El recuento de transferencias está en exabytes. |
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS | El recuento de transferencias no es un exponente, pero en unidades de longitud de bloque lógico. |
TransferCount[8]
Longitud de los datos transferidos en la operación. El tipo de unidad de TransferCountUnits se aplica a este valor para proporcionar el recuento total de bytes.
SegmentsProcessed[2]
Número de segmentos procesados para la operación de transferencia de datos. Los segmentos son unidades de longitud de copia usadas internamente por el proveedor de copia de un dispositivo de almacenamiento. En los sistemas Windows, este valor está reservado y las aplicaciones deben omitir este miembro.
Reserved3[6]
Reservado.
SenseData[ANYSIZE_ARRAY]
Detección de datos devueltos para la operación de copia.
Comentarios
Si RECEIVE_TOKEN_INFORMATION_HEADER es para una operación de comando POPULATE TOKEN y el comando se completó correctamente, una estructura de RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER también estará presente después de SenseData en un desplazamiento de SenseDataFieldLength desde el principio de la matriz SenseData . La estructura RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER contendrá el token creado como una representación de datos (ROD) para los parámetros de intervalo enviados con el comando .
Todos los valores multibyte están en formato big endian. Antes de la evaluación, estos valores se deben convertir para que coincidan con el formato endian de la plataforma actual.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 |
Encabezado | storport.h (include Scsi.h, Minitape.h, Storport.h) |