Share via


STORAGE_DEVICE_DESCRIPTOR 구조체(ntddstor.h)

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

구문

typedef struct _STORAGE_DEVICE_DESCRIPTOR {
  ULONG            Version;
  ULONG            Size;
  UCHAR            DeviceType;
  UCHAR            DeviceTypeModifier;
  BOOLEAN          RemovableMedia;
  BOOLEAN          CommandQueueing;
  ULONG            VendorIdOffset;
  ULONG            ProductIdOffset;
  ULONG            ProductRevisionOffset;
  ULONG            SerialNumberOffset;
  STORAGE_BUS_TYPE BusType;
  ULONG            RawPropertiesLength;
  UCHAR            RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;

멤버

Version

STORAGE_DEVICE_DESCRIPTOR 구조체의 크기를 나타냅니다. 멤버가 구조체에 추가되면 이 멤버의 값이 변경됩니다.

Size

구조체에 추가되는 ID 문자열을 포함하여 설명자의 총 크기를 바이트 단위로 지정합니다.

DeviceType

SCSI(Small Computer Systems Interface) 사양에 정의된 대로 디바이스 유형을 지정합니다.

DeviceTypeModifier

SCSI 사양에 정의된 디바이스 유형 한정자(있는 경우)를 지정합니다. 디바이스 유형 한정자가 없으면 이 멤버는 0입니다.

RemovableMedia

디바이스의 미디어(있는 경우)가 이동식인 경우 TRUE 를 나타냅니다. 디바이스에 미디어가 없으면 이 멤버를 무시해야 합니다. FALSE이면 디바이스의 미디어를 이동식으로 사용할 수 없습니다.

CommandQueueing

디바이스가 여러 미해결 명령(SCSI 태그가 지정된 큐 또는 해당)을 지원하는 경우 TRUE 를 나타냅니다. FALSE인 경우 디바이스는 SCSI 태그가 지정된 큐 또는 해당 큐를 지원하지 않습니다. STORPORT 드라이버는 명령 동기화를 담당합니다.

VendorIdOffset

구조체의 시작 부분에서 디바이스의 공급업체 ID를 포함하는 NULL로 끝나는 ASCII 문자열로의 바이트 오프셋을 지정합니다. 디바이스에 공급업체 ID가 없는 경우 이 멤버는 0입니다.

ProductIdOffset

구조체의 시작 부분에서 디바이스의 제품 ID를 포함하는 NULL로 끝나는 ASCII 문자열로의 바이트 오프셋을 지정합니다. 디바이스에 제품 ID가 없으면 이 멤버는 0입니다.

ProductRevisionOffset

구조체의 시작 부분에서 디바이스의 제품 수정 문자열을 포함하는 NULL로 끝나는 ASCII 문자열로의 바이트 오프셋을 지정합니다. 디바이스에 제품 수정 문자열이 없으면 이 멤버는 0입니다.

SerialNumberOffset

구조체의 시작 부분에서 디바이스의 일련 번호를 포함하는 NULL로 끝나는 ASCII 문자열로의 바이트 오프셋을 지정합니다. 디바이스에 일련 번호가 없는 경우 이 멤버는 0입니다.

BusType

디바이스가 연결된 버스의 유형을 나타내는 STORAGE_BUS_TYPE 형식의 열거자 값을 지정합니다. 이 구조체의 끝에 있는 원시 디바이스 속성을 해석하는 데 사용해야 합니다(있는 경우).

RawPropertiesLength

이 설명자에 추가된 버스별 데이터의 바이트 수를 나타냅니다.

RawDeviceProperties[1]

버스별 속성 데이터의 첫 번째 바이트에 대한 자리 표시자 역할을 하는 길이 1의 배열을 포함합니다.

설명

애플리케이션 및 스토리지 클래스 드라이버는 I/O 제어 코드 IOCTL_STORAGE_QUERY_PROPERTY 디바이스 제어 요청을 실행하여 대상 디바이스에 대한 정보를 포함하는 이 구조를 검색합니다. 구조체는 FDO에서만 검색할 수 있습니다. 어댑터에서 디바이스 속성을 검색하려고 하면 오류가 발생합니다.

애플리케이션 또는 드라이버는 검색된 STORAGE_DEVICE_DESCRIPTOR 구조를 버전 및 크기만 포함하는 STORAGE_DESCRIPTOR_HEADER 캐스팅하여 필요한 버퍼 크기를 확인할 수 있습니다.

요구 사항

요구 사항
헤더 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