다음을 통해 공유


SCSI_PASS_THROUGH_DIRECT 구조체(ntddscsi.h)

SCSI_PASS_THROUGH_DIRECT 구조는 포트 드라이버에 포함된 SCSI 명령을 대상 디바이스로 보내도록 지시하는 IOCTL_SCSI_PASS_THROUGH_DIRECT 요청과 함께 사용됩니다.

참고

SCSI 포트 드라이버 및 SCSI 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.

구문

typedef struct _SCSI_PASS_THROUGH_DIRECT {
  USHORT Length;
  UCHAR  ScsiStatus;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  CdbLength;
  UCHAR  SenseInfoLength;
  UCHAR  DataIn;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  ULONG  SenseInfoOffset;
  UCHAR  Cdb[16];
} SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;

멤버

Length

sizeof(SCSI_PASS_THROUGH_DIRECT)의 값을 포함합니다.

ScsiStatus

HBA 또는 대상 디바이스에서 반환된 SCSI 상태 보고합니다.

PathId

요청에 대한 SCSI 포트 또는 버스를 나타냅니다.

TargetId

버스의 대상 컨트롤러 또는 디바이스를 나타냅니다.

Lun

디바이스의 논리적 단위 번호를 나타냅니다.

CdbLength

SCSI 명령 설명자 블록의 크기(바이트)를 나타냅니다.

SenseInfoLength

요청 감지 버퍼의 크기(바이트)를 나타냅니다.

DataIn

SCSI 명령이 데이터를 읽거나 쓸지 여부를 나타냅니다. 이 필드에는 다음 세 가지 값 중 하나가 있어야 합니다.

데이터 전송 형식 의미
SCSI_IOCTL_DATA_IN 디바이스에서 데이터를 읽습니다.
SCSI_IOCTL_DATA_OUT 디바이스에 데이터를 씁니다.
SCSI_IOCTL_DATA_UNSPECIFIED 전송된 데이터가 없습니다.

DataTransferLength

데이터 버퍼의 크기(바이트)를 나타냅니다. 많은 디바이스가 미리 정의된 길이의 데이터 청크를 전송합니다. DataTransferLength의 값은 디바이스에서 지정한 미리 정의된 최소 길이의 정수 배수여야 합니다. 언더런이 발생하는 경우 미니포트 드라이버는 이 멤버를 실제로 전송된 바이트 수로 업데이트해야 합니다.

TimeOutValue

OS 관련 포트 드라이버에서 시간 초과를 고려할 수 있기 전에 요청이 실행될 수 있는 간격(초)을 나타냅니다.

DataBuffer

데이터 버퍼에 대한 포인터입니다.

SenseInfoOffset

이 구조체의 시작부터 요청 감지 버퍼까지의 오프셋을 포함합니다.

Cdb[16]

대상 디바이스로 보낼 SCSI 명령 설명자 블록을 지정합니다.

설명

SCSI_PASS_THROUGH_DIRECT 구조체는 IOCTL_SCSI_PASS_THROUGH_DIRECT 함께 사용됩니다. 이 요청을 통해 시스템은 사용자 메모리의 버퍼를 잠그고 디바이스는 이 메모리에 직접 액세스합니다. 이 디바이스 제어 요청에 해당하는 이중 버퍼링은 IOCTL_SCSI_PASS_THROUGHSCSI_PASS_THROUGH 참조하세요.

SCSI_PASS_THROUGH_DIRECT 멤버는 대략 SCSI_REQUEST_BLOCK 구조체의 멤버에 해당합니다. DataIn 멤버의 값은 SCSI_REQUEST_BLOCK SrbFlags 멤버에 할당된 SCSI_IOCTL_DATA_IN, SCSI_IOCTL_DATA_OUT 및 SCSI_IOCTL_DATA_UNSPECIFIED 플래그에 해당합니다.

요구 사항

요구 사항
헤더 ntddscsi.h(Ntddscsi.h 포함)

추가 정보

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

SCSI_PASS_THROUGH

SCSI_REQUEST_BLOCK