IRP_MJ_QUERY_VOLUME_INFORMATION

보낸 경우

IRP_MJ_QUERY_VOLUME_INFORMATION 요청은 I/O 관리자에 의해 전송됩니다. 예를 들어 사용자 모드 애플리케이션이 GetDiskFreeSpace 또는 GetFileType과 같은 Microsoft Win32 함수를 호출한 경우 전송할 수 있습니다.

작업: 파일 시스템 드라이버

파일 시스템 드라이버는 파일 개체를 추출하고 디코딩하여 대상 디바이스 개체가 파일 시스템의 제어 디바이스 개체인지 여부를 확인해야 합니다. 볼륨이 열려 있는 핸들(또는 볼륨의 개체 열기)에서 요청이 실행된 경우 파일 시스템 드라이버는 요청을 처리하고 IRP를 완료해야 합니다.

그렇지 않으면 파일 시스템 드라이버가 쿼리에 실패하고 IRP를 완료해야 합니다.

쿼리할 수 있는 볼륨 정보의 형식은 파일 시스템에 종속되지만 일반적으로 다음을 포함합니다.

FileFsAttributeInformation

FileFsDeviceInformation

FileFsSizeInformation

FileFsVolumeInformation

가능한 모든 정보 형식 목록은 아래의 IrpSp-Parameters.QueryVolume.FsInformationClass>를 참조하세요.

작업: 네트워크 리디렉션 드라이버

FileFsDeviceInformation에 대한 요청을 수신하는 네트워크 리디렉션자는 반환된 FILE_FS_DEVICE_INFORMATION 구조체의 DeviceCharacteristics 멤버에 대한 옵션 중 하나로 FILE_REMOTE_DEVICE 포함해야 합니다.

작업: 파일 시스템 필터 드라이버

필터 드라이버는 이 IRP를 스택의 다음 하위 드라이버로 전달해야 합니다.

매개 변수

파일 시스템 또는 필터 드라이버는 지정된 IRP를 사용하여 IoGetCurrentIrpStackLocation 을 호출하여 IRP의 자체 스택 위치에 대한 포인터를 가져옵니다. IrpSp로 다음 목록에 나와 있습니다. (IRP는 Irp로 표시됩니다.) 드라이버는 쿼리 볼륨 정보 요청을 처리하는 데 IRP 및 IRP 스택 위치의 다음 멤버에 설정된 정보를 사용할 수 있습니다.

DeviceObject
대상 디바이스 개체에 대한 포인터입니다.

Irp-AssociatedIrp.SystemBuffer>
볼륨 정보를 반환할 시스템 제공 출력 버퍼에 대한 포인터입니다. 이 정보는 다음 구조 중 하나에 저장됩니다.

FILE_FS_ATTRIBUTE_INFORMATION

FILE_FS_CONTROL_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FS_DRIVER_PATH_INFORMATION

FILE_FS_FULL_SIZE_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FILE_FS_SIZE_INFORMATION

FILE_FS_VOLUME_FLAGS_INFORMATION

FILE_FS_VOLUME_INFORMATION

FILE_FS_SECTOR_SIZE_INFORMATION

FileFsVolumeFlagsInformation 클래스 및 연결된 FILE_FS_VOLUME_INFORMATION 구조체는 Windows Vista 이상 버전에서 사용할 수 있습니다.

Irp-> 요청된 작업에 대한 최종 완료 상태 및 정보를 수신하는 IO_STATUS_BLOCK 구조체에 대한 IoStatus 포인터입니다.

Irp-> I/O 관리자가 I/O를 완료하는 동안 Irp-AssociatedIrp.SystemBuffer>의 내용이 복사되는 호출자 제공 출력 버퍼에 대한 UserBuffer 선택적 포인터입니다. 드라이버는 이 버퍼를 사용하여 요청에 대한 데이터를 반환하지 않습니다.

IrpSp-> DeviceObject 와 연결된 파일 개체에 대한 FileObject 포인터입니다.

IrpSp-FileObject> 매개 변수에는 FILE_OBJECT 구조인 RelatedFileObject 필드에 대한 포인터가 포함되어 있습니다. FILE_OBJECT 구조체의 RelatedFileObject 필드는 IRP_MJ_QUERY_VOLUME_INFORMATION 처리하는 동안 유효하지 않으므로 사용하면 안 됩니다.

IrpSp-> MajorFunction은IRP_MJ_QUERY_VOLUME_INFORMATION 지정합니다.

IrpSp-> Parameters.QueryVolume.FsInformationClass 는 파일 시스템에서 반환할 볼륨 정보의 형식을 지정합니다. 이 멤버는 다음 중 하나일 수 있습니다.

의미

FileFsAttributeInformation

볼륨을 담당하는 파일 시스템에 대한 특성 정보가 포함된 FILE_FS_ATTRIBUTE_INFORMATION 구조를 반환합니다.

FileFsControlInformation

볼륨에 대한 파일 시스템 제어 정보가 포함된 FILE_FS_CONTROL_INFORMATION 구조를 반환합니다.

FileFsDeviceInformation

볼륨에 대한 디바이스 정보가 포함된 FILE_FS_DEVICE_INFORMATION 구조를 반환합니다.

FileFsDriverPathInformation

지정된 드라이버가 볼륨의 I/O 경로에 있는지 여부에 대한 정보를 포함하는 FILE_FS_DRIVER_PATH_INFORMATION 구조를 반환합니다. IRP_MJ_QUERY_VOLUME_INFORMATION 요청의 생성자는 IRP를 파일 시스템 볼륨 디바이스 스택으로 보내기 전에 드라이버의 이름을 FILE_FS_DRIVER_PATH_INFORMATION 구조에 저장해야 합니다.

FileFsFullSizeInformation

볼륨에서 사용할 수 있는 총 공간 양에 대한 정보를 포함하는 FILE_FS_FULL_SIZE_INFORMATION 구조를 반환합니다.

FileFsObjectIdInformation

볼륨에 대한 파일 시스템별 개체 ID 정보가 포함된 FILE_FS_OBJECTID_INFORMATION 구조를 반환합니다. 이는 운영 체제에서 할당한 (GUID 기반) 고유 볼륨 이름과 동일하지 않습니다.

FileFsSizeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION 요청을 시작한 스레드와 연결된 사용자가 사용할 수 있는 볼륨의 공간 양에 대한 정보가 포함된 FILE_FS_SIZE_INFORMATION 구조를 반환합니다.

FileFsVolumeInformation

볼륨 레이블, 일련 번호 및 생성 시간과 같은 볼륨에 대한 정보가 포함된 FILE_FS_VOLUME_INFORMATION 반환합니다.

FileFsSectorSizeInformation

볼륨의 물리적 및 논리적 섹터 크기에 대한 정보를 포함하는 FILE_FS_SECTOR_SIZE_INFORMATION 구조를 반환합니다.

IrpSp-> Irp-UserBuffer가 가리키는 버퍼의 Parameters.QueryVolume.Length 길이(바이트 )>입니다. 반환 시 이 변수는 버퍼에 기록된 바이트 수를 받습니다.

참고 항목

FILE_FS_ATTRIBUTE_INFORMATION

FILE_FS_CONTROL_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FS_DRIVER_PATH_INFORMATION

FILE_FS_FULL_SIZE_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FILE_FS_SECTOR_SIZE_INFORMATIONFILE_FS_SIZE_INFORMATION

FILE_FS_VOLUME_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile