FltEnumerateVolumes 함수(fltkernel.h)
FltEnumerateVolumes 루틴은 시스템의 모든 볼륨을 열거합니다.
구문
NTSTATUS FLTAPI FltEnumerateVolumes(
[in] PFLT_FILTER Filter,
[out] PFLT_VOLUME *VolumeList,
[in] ULONG VolumeListSize,
[out] PULONG NumberVolumesReturned
);
매개 변수
[in] Filter
호출자에 대한 불투명 필터 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[out] VolumeList
불투명 볼륨 포인터 배열을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 VolumeListSize가 0인 경우 NULL일 수 있습니다. VolumeListSize가 입력 시 0이고 VolumeList가 NULL이면 NumberVolumesReturned은 찾은 볼륨 수를 받습니다.
[in] VolumeListSize
VolumeList가 가리키는 버퍼가 보유할 수 있는 불투명 필터 포인터의 수입니다. 이 매개 변수는 선택 사항이며 0일 수 있습니다. VolumeListSize가 입력 시 0이고 VolumeList가 NULL이면 NumberVolumesReturned은 찾은 볼륨 수를 받습니다.
[out] NumberVolumesReturned
VolumeList가 가리키는 배열에 반환된 불투명 볼륨 포인터 수를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. VolumeListSize가 너무 작고 VolumeList가 입력 시 NULL이 아닌 경우 FltEnumerateVolumes는 STATUS_BUFFER_TOO_SMALL 반환하고 NumberVolumesRe를 찾은 볼륨 수를 가리키도록 설정합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
반환 값
FltEnumerateVolumes는 STATUS_SUCCESS 또는 다음과 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
VolumeList 매개 변수가 가리키는 버퍼가 요청된 정보를 저장할 만큼 크지 않습니다. 오류 코드입니다. |
설명
필터 관리자 볼륨 목록의 내용은 언제든지 변경 될 수 있으므로 FltEnumerateVolumes 에 대한 두 번의 호출은 동일한 결과를 반환하도록 보장되지 않습니다.
FltEnumerateVolumes 는 VolumeList 가 가리키는 배열에 반환된 각 불투명 볼륨 포인터에 런다운 참조를 추가합니다. 이러한 포인터가 더 이상 필요하지 않으면 호출자는 각 포인터에 대해 FltObjectDereference 를 호출하여 해제해야 합니다. 따라서 FltEnumerateVolumes 에 대한 모든 성공적인 호출은 반환된 각 볼륨 포인터에 대해 FltObjectDereference 에 대한 후속 호출과 일치해야 합니다.
VolumeList 매개 변수에서 반환된 하나 이상의 불투명 볼륨 포인터를 볼륨 정보로 변환하려면 FltGetVolumeInformation을 호출합니다.
필터 관리자에 알려진 모든 볼륨에 대한 볼륨 정보를 나열하려면 FltEnumerateVolumeInformation을 호출합니다.
등록된 모든 미니필터 드라이버를 열거하려면 FltEnumerateFilters를 호출합니다.
모든 미니필터 드라이버 인스턴스를 열거하려면 FltEnumerateInstances를 호출합니다.
지정된 볼륨의 모든 미니필터 드라이버 인스턴스를 열거하려면 FltEnumerateInstanceInformationByVolume을 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(FltKernel.h 포함) |
라이브러리 | FltMgr.lib |
IRQL | <= APC_LEVEL |