RECEIVE_TOKEN_INFORMATION_HEADER 구조체(storport.h)

RECEIVE_TOKEN_INFORMATION_HEADER 구조에는 오프로드 데이터 전송 작업에서 상태 반환된 정보가 포함됩니다.

구문

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;

멤버

AvailableData[4]

SenseData 배열에서 사용할 수 있는 데이터의 양 및 추가 결과 정보입니다.

ResponseToServiceAction

응답의 명령 동작을 나타내는 응답 코드입니다. 서비스 작업 코드는 다음과 같습니다.

의미
SERVICE_ACTION_POPULATE_TOKEN 응답 정보는 POPULATE TOKEN 명령에 대한 것입니다.
SERVICE_ACTION_WRITE_USING_TOKEN 응답 정보는 WRITE USING TOKEN 명령에 대한 것입니다.

Reserved1

예약되어 있습니다.

OperationStatus

복사 작업의 현재 상태. 상태 다음 값 중 하나일 수 있습니다.

의미
0x01 작업이 성공적으로 완료되었습니다.
0x02 작업이 성공적으로 완료되었습니다.
0x04 작업이 성공적으로 완료되었지만 복사 초기자는 모든 데이터가 전송되었는지 확인해야 합니다.
0x10 작업이 진행 중입니다. 포그라운드 또는 백그라운드 작업 상태를 알 수 없습니다.
0x11 전경에서 작업이 진행 중입니다.
0x12 작업이 백그라운드에서 진행 중입니다.
0x60 작업이 종료되었습니다. 기존 리소스 예약에 의한 것일 수 있습니다.

Reserved2

예약되어 있습니다.

OperationCounter[2]

현재 복사 작업에 대해 처리된 명령 수입니다.

EstimatedStatusUpdateDelay[4]

현재 복사 작업에 대한 업데이트된 정보에 대해 다음 RECEIVE COPY STATUS 명령을 보내기 전에 대기하는 데 권장되는 시간(밀리초)입니다.

CompletionStatus

SCSI 상태 명령 복사 작업에 대한 코드입니다.

SenseDataFieldLength

센스 데이터에 사용할 수 있는 전체 데이터 영역의 길이(바이트)입니다. 이 값은 항상 >= SenseDataLength입니다.

SenseDataLength

SenseData에 있는 데이터의 길이(바이트)입니다.

TransferCountUnits

TransferCount에 적용된 바이트 단위입니다. 각 단위 확장은 base 2의 지수입니다. 예를 들어 TRANSFER_COUNT_UNITS_KIBIBYTES 승수 값은 1000이 아닌 1024입니다. 정의된 단위는 다음과 같습니다.

의미
TRANSFER_COUNT_UNITS_BYTES 전송 횟수는 바이트 단위입니다.
TRANSFER_COUNT_UNITS_KIBIBYTES 전송 횟수는 킬로바이트 단위입니다.
TRANSFER_COUNT_UNITS_MEBIBYTES 전송 횟수는 MB입니다.
TRANSFER_COUNT_UNITS_GIBIBYTES 전송 수는 기가바이트 단위입니다.
TRANSFER_COUNT_UNITS_TEBIBYTES 전송 수는 테라바이트 단위입니다.
TRANSFER_COUNT_UNITS_PEBIBYTES 전송 횟수는 페타바이트 단위입니다.
TRANSFER_COUNT_UNITS_EXBIBYTES 전송 횟수는 엑사바이트 단위입니다.
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS 전송 횟수는 지수가 아니라 논리 블록 길이 단위입니다.

TransferCount[8]

작업에서 전송되는 데이터의 길이입니다. TransferCountUnits의 단위 형식은 이 값에 적용되어 총 바이트 수를 제공합니다.

SegmentsProcessed[2]

데이터 전송 작업을 위해 처리된 세그먼트 수입니다. 세그먼트는 스토리지 디바이스의 복사 공급자가 내부적으로 사용하는 복사 길이 단위입니다. Windows 시스템에서 이 값은 예약되어 있으며 애플리케이션은 이 멤버를 무시해야 합니다.

Reserved3[6]

예약되어 있습니다.

SenseData[ANYSIZE_ARRAY]

복사 작업에 대해 반환된 센스 데이터입니다.

설명

RECEIVE_TOKEN_INFORMATION_HEADER TOKEN 채우기 명령 작업용이고 명령이 성공적으로 완료된 경우 SenseData 배열의 시작 부분에서 SenseDataFieldLength 오프셋의 SenseData 다음에도 RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER 구조가 있습니다. RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER 구조에는 명령으로 전송된 범위 매개 변수에 대한 ROD(데이터 표현)로 만든 토큰이 포함됩니다.

모든 멀티바이트 값은 big endian 형식입니다. 평가하기 전에 이러한 값은 현재 플랫폼의 endian 형식과 일치하도록 변환되어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
머리글 storport.h(Scsi.h, Minitape.h, Storport.h 포함)

추가 정보

RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER