Share via


STORAGE_ADAPTER_DESCRIPTOR 구조체(ntddstor.h)

STORAGE_ADAPTER_DESCRIPTOR 구조는 IOCTL_STORAGE_QUERY_PROPERTY 요청과 함께 디바이스에 대한 스토리지 어댑터 설명자 데이터를 검색하는 데 사용됩니다.

구문

typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
  ULONG   Version;
  ULONG   Size;
  ULONG   MaximumTransferLength;
  ULONG   MaximumPhysicalPages;
  ULONG   AlignmentMask;
  BOOLEAN AdapterUsesPio;
  BOOLEAN AdapterScansDown;
  BOOLEAN CommandQueueing;
  BOOLEAN AcceleratedTransfer;
#if ...
  BOOLEAN BusType;
#else
  UCHAR   BusType;
#endif
  USHORT  BusMajorVersion;
  USHORT  BusMinorVersion;
  UCHAR   SrbType;
  UCHAR   AddressType;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;

멤버

Version

구조체 STORAGE_ADAPTER_DESCRIPTOR 버전을 포함합니다. 멤버가 구조체에 추가되면 이 멤버의 값이 변경됩니다.

Size

설명자의 총 크기(바이트)를 지정합니다.

MaximumTransferLength

HBA(호스트 버스 어댑터)가 단일 작업에서 전송할 수 있는 최대 바이트 수를 지정합니다.

MaximumPhysicalPages

HBA가 단일 전송에서 관리할 수 있는 불연속 물리적 페이지의 최대 수를 지정합니다(즉, 분산/수집 지원의 범위).

AlignmentMask

전송에 대한 HBA의 맞춤 요구 사항을 지정합니다. 스토리지 클래스 드라이버는 디바이스 개체의 AlignmentRequirement 필드를 이 값으로 설정합니다. 맞춤 마스크는 전송 작업에 HBA에 필요한 버퍼에 대한 맞춤 제한을 나타냅니다. 유효한 마스크 값은 0(바이트 정렬), 1(단어 정렬), 3(DWORD 맞춤) 및 7(이중 DWORD 정렬)입니다.

AdapterUsesPio

HBA가 PIO(프로그래밍된 입력/출력)를 사용하고 데이터 버퍼의 실제 메모리에 매핑된 시스템 공간 가상 주소를 사용해야 하는 경우 TRUE 를 나타냅니다. FALSE인 경우 HBA는 PIO를 사용하지 않습니다.

AdapterScansDown

TRUE이면 HBA가 BIOS 디바이스를 검색합니다. 즉, HBA가 가장 낮은 디바이스 번호가 아닌 가장 높은 디바이스 번호로 검사를 시작합니다. FALSE이면 HBA가 가장 낮은 디바이스 번호로 검사를 시작합니다. 이 멤버는 레거시 미니포트 드라이버용으로 예약되어 있습니다.

CommandQueueing

HBA가 SCSI 태그가 지정된 큐 및/또는 논리 단위별 내부 큐 또는 SCSI가 아닌 큐를 지원하는 경우 TRUE 를 나타냅니다. FALSE인 경우 HBA는 SCSI 태그가 지정된 큐 또는 논리 단위별 내부 큐를 지원하지 않습니다.

AcceleratedTransfer

HBA가 I/O 속도를 높이기 위한 방법으로 동기 전송을 지원하는 경우 TRUE 를 나타냅니다. FALSE인 경우 HBA는 I/O 속도를 높이기 위한 방법으로 동기 전송을 지원하지 않습니다.

BusType

디바이스가 연결된 버스 유형을 나타내는 STORAGE_BUS_TYPE 형식의 값을 지정합니다.

BusMajorVersion

HBA의 주 버전 번호(있는 경우)를 지정합니다.

BusMinorVersion

HBA의 부 버전 번호(있는 경우)를 지정합니다.

SrbType

HBA에서 사용하는 SRB(SCSI 요청 블록) 형식을 지정합니다. 이 멤버는 Windows 8 시작해도 유효합니다.

의미
SRB_TYPE_SCSI_REQUEST_BLOCK HBA는 SCSI 요청 블록을 사용합니다.
SRB_TYPE_STORAGE_REQUEST_BLOCK HBA는 확장된 SCSI 요청 블록을 사용합니다.

AddressType

HBA의 주소 유형을 지정합니다. 이 멤버는 Windows 8 시작해도 유효합니다.

의미
STORAGE_ADDRESS_TYPE_BTL8 HBA는 8비트 버스, 대상 및 LUN 주소 지정을 사용합니다.

설명

스토리지 클래스 드라이버는 I/O 제어 코드 IOCTL_STORAGE_QUERY_PROPERTY 디바이스 제어 요청을 실행하여 데이터 전송 작업을 위해 HBA의 구성 정보를 포함하는 이 구조를 검색합니다. 구조체는 버스의 디바이스 개체 또는 기본 버스에 요청을 전달하는 FDO(기능 디바이스 개체)에서 검색할 수 있습니다.

동기 전송을 지원하는 HBA에서 과도한 프로토콜 오류가 발생하는 경우(AcceleratedTransferTRUE) 스토리지 클래스 드라이버는 SRB에서 SRB_FLAGS_DISABLE_SYNCH_TRANSFER 설정하여 동기 전송을 사용하지 않도록 설정할 수 있습니다.

요구 사항

요구 사항
헤더 ntddstor.h(Ntddstor.h 포함)

추가 정보

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR