FltQueryDirectoryFileEx 함수(fltkernel.h)
FltQueryDirectoryFileEx 지정된 파일 개체로 지정된 디렉터리의 파일에 대한 다양한 종류의 정보를 반환합니다.
통사론
NTSTATUS FLTAPI FltQueryDirectoryFileEx(
PFLT_INSTANCE Instance,
PFILE_OBJECT FileObject,
PVOID FileInformation,
ULONG Length,
FILE_INFORMATION_CLASS FileInformationClass,
ULONG QueryFlags,
PUNICODE_STRING FileName,
PULONG LengthReturned
);
매개 변수
Instance
이 I/O를 시작하는 미니 필터 드라이버 인스턴스에 대한 불투명 포인터입니다.
FileObject
쿼리할 디렉터리를 나타내는 파일 개체에 대한 포인터입니다.
FileInformation
파일에 대한 원하는 정보를 수신하는 버퍼에 대한 포인터입니다. 버퍼에 반환된 정보의 구조는 FileInformationClass 매개 변수에 의해 정의됩니다.
Length
fileInformation
FileInformationClass
디렉터리의 파일에 대해 반환할 정보 유형입니다. 가능한 값 목록은 NtQueryDirectoryFileExFileInformationClass 매개 변수를 참조하세요.
QueryFlags
SL_QUERY_DIRECTORY_MASK 포함된 플래그 중 하나 이상입니다. 가능한 값은 다음 표에 지정되어 있습니다.
값 | 의미 |
---|---|
SL_RESTART_SCAN(0x00000001) | 이 플래그를 설정하면 디렉터리의 첫 번째 항목에서 검사가 시작됩니다. 이 플래그를 설정하지 않으면 마지막 쿼리가 종료된 위치에서 검사가 다시 시작됩니다. |
SL_RETURN_SINGLE_ENTRY(0x00000002) | 일반적으로 반환 버퍼는 일치하는 디렉터리 항목으로 압축됩니다. 이 플래그를 설정하면 파일 시스템은 한 번에 하나의 디렉터리 항목만 반환합니다. 이렇게 하면 작업의 효율성이 떨어집니다. |
SL_INDEX_SPECIFIED(0x00000004) | 이 플래그를 설정하면 디렉터리의 지정된 인덱싱된 위치에서 검사가 시작됩니다. 이 플래그는 고유한 IRP_MJ_DIRECTORY_CONTROL IRP생성하는 경우에만 설정할 수 있습니다. 인덱스가 IRP에 지정됩니다. 위치를 지정하는 방법은 파일 시스템마다 다릅니다. |
SL_RETURN_ON_DISK_ENTRIES_ONLY(0x00000008) | 이 플래그가 설정된 경우 디렉터리 가상화 또는 Just-In-Time 확장을 수행하는 파일 시스템 필터는 요청을 파일 시스템으로 전달하고 현재 디스크에 있는 항목을 반환해야 합니다. 모든 파일 시스템에서 이 플래그를 지원하는 것은 아닙니다. |
SL_NO_CURSOR_UPDATE_QUERY(0x00000010) | 파일 시스템은 fileObject 디렉터리 커서 정보를 |
FileName
fileObject지정된 디렉터리 내에서 파일 이름(또는 와일드카드를 사용하는 경우 여러 파일)이 포함된 유니코드 문자열이 있는 호출자 할당
LengthReturned
지정된 FileInformation 버퍼에 실제로 기록된 바이트 수를 받습니다.
반환 값
FltQueryDirectoryFileEx STATUS_SUCCESS 또는 적절한 오류 코드를 반환합니다. 반환할 수 있는 오류 상태 값 집합은 파일 시스템별 값입니다.
발언
FltQueryDirectoryFileExFileObject표시되는 디렉터리에 포함된 파일에 대한 정보를 반환합니다.
일치하는 디렉터리 항목이 하나 이상 있다고 가정하면 정보가 반환되는 항목 수는 다음 중 가장 작습니다.
SL_RETURN_SINGLE_ENTRY 플래그가
QueryFlags 설정되고 FileNameNULL 한 항목입니다. FileName NULL않은 경우 FileName 문자열과 일치하는 항목 수입니다. (문자열에 와일드카드가 없는 경우 일치하는 항목이 하나 이상 있을 수 있습니다.)FileInformation가리키는 버퍼에 정보가 맞는 항목 수입니다.
디렉터리에 포함된 항목 수입니다.
fltQueryDirectoryFileEx
각 호출에서 FltQueryDirectoryFileExFileInformation가리키는 버퍼에 완전히 포함될 수 있는 만큼의 FILE_XXX_INFORMATION 구조(디렉터리 항목당 하나)를 반환합니다. 출력 버퍼에 하나 이상의 전체 구조가 포함되어 있는 한 반환된 상태 값은 STATUS_SUCCESS. 나머지 항목에 대한 정보는 보고되지 않습니다. 따라서 위에 나열된 항목이 하나만 반환되는 경우를 제외하고 전체 디렉터리의 내용을 열거하려면
fltQueryDirectoryFileEx
참고:FltQueryDirectoryFileEx 동일한 디렉터리에서 여러 번 호출되는 경우 정보가 반환되는 항목 수가 예상보다 적을 수 있습니다. 디렉터리 검사에 포함할 항목 집합이
FltQueryDirectoryFileEx 파일 시스템에서 지원되지 않는 FILE_XXX_INFORMATION 구조체의 멤버에서 0을 반환합니다.
FltQueryDirectoryFileEx 호출자는 IRQL = PASSIVE_LEVEL APC를 사용하도록 설정된 상태에서 실행되어야 합니다. 자세한 내용은 APC사용하지 않도록 설정하는
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 1709 |
헤더 | fltkernel.h |
참고 항목
FILE_ID_EXTD_BOTH_DIR_INFORMATION
FILE_ID_GLOBAL_TX_DIR_INFORMATION
FILE_REPARSE_POINT_INFORMATION
fltCreateFile
fltQueryDirectoryFile
IRP