다음을 통해 공유


IOCTL_STORAGE_QUERY_PROPERTY IOCTL(ntddstor.h)

드라이버는 IOCTL_STORAGE_QUERY_PROPERTY 사용하여 스토리지 디바이스 또는 어댑터의 속성을 반환할 수 있습니다. 요청은 디바이스에 대한 조회 데이터 또는 어댑터의 기능 및 제한 사항과 같이 검색할 정보의 종류를 나타냅니다. IOCTL_STORAGE_QUERY_PROPERTY는 포트 드라이버가 특정 속성을 지원하는지 또는 후속 변경 속성 요청으로 수정할 수 있는 속성 설명자의 필드를 확인하는 데도 사용할 수 있습니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

Parameters.DeviceIoControl.InputBufferLengthIrp-AssociatedIrp.SystemBuffer>의 매개 변수 버퍼 크기를 바이트 단위로 나타내며, 이는 = sizeof(STORAGE_PROPERTY_QUERY)여야 >합니다.

Irp->ASSOCIATedIrp.SystemBuffer 에는 디바이스 또는 어댑터를 쿼리할지 여부, 수행할 쿼리 유형 및 쿼리에 필요한 추가 매개 변수(예: 특정 SCSI 모드 센스 페이지의 페이지 코드)를 지정하는 STORAGE_PROPERTY_QUERY 데이터가 포함되어 있습니다. 디바이스 속성은 디바이스에서만 검색해야 합니다. 어댑터에서 디바이스 속성을 검색하려고 하면 오류가 발생합니다.

Parameters.DeviceIoControl.OutputBufferLengthIrp-AssociatedIrp.SystemBuffer>에 쓸 수 있는 바이트 수를 나타냅니다. OutputBufferLength 는 데이터를 검색하지 않고 속성이 있는지 여부를 확인하기 위해 0일 수 있습니다.

입력 버퍼 길이

Parameters.DeviceIoControl.InputBufferLengthIrp-AssociatedIrp.SystemBuffer>의 매개 변수 버퍼 크기를 바이트 단위로 나타내며, 이는 = sizeof(STORAGE_PROPERTY_QUERY)여야 >합니다.

출력 버퍼

드라이버는 Irp-AssociatedIrp.SystemBuffer>의 버퍼에 쿼리 데이터를 반환합니다. 다양한 양의 버스별 데이터를 구조에 추가할 수 있습니다.

출력 버퍼 길이

구조체를 STORAGE_DESCRIPTOR_HEADER 캐스팅하고 Size 멤버를 검사 구조체에 실제로 필요한 바이트 수를 결정합니다.

상태 블록

정보 필드는 반환된 바이트 수로 설정됩니다. 상태 필드는 STATUS_SUCCESS 또는 STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER 또는 STATUS_NOT_SUPPORTED 설정됩니다.

요구 사항

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

추가 정보

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME