FltRetrieveFileInfoOnCreateCompletionEx 함수(fltkernel.h)
FltRetrieveFileInfoOnCreateCompletionEx는 파일을 만들 때 지정된 파일 정보에 대한 쿼리를.
통사론
NTSTATUS FLTAPI FltRetrieveFileInfoOnCreateCompletionEx(
[in] PFLT_FILTER Filter,
[in] PFLT_CALLBACK_DATA Data,
[in] ULONG InfoClass,
[out] PULONG RetInfoSize,
[out] PVOID *RetInfoBuffer
);
매개 변수
[in] Filter
미니 필터 드라이버를 고유하게 식별하는 불투명 필터 포인터입니다. FltRegisterFilter반환되며 미니 필터 드라이버가 로드되는 한 일정하게 유지됩니다.
[in] Data
I/O 작업을 나타내는 FLT_CALLBACK_DATA 콜백 데이터에 대한 포인터입니다.
[in] InfoClass
반환할 파일 정보의 형식을 나타내는 플래그입니다. 플래그를 결합할 수 없습니다. 다음 값 중 하나일 수 있습니다.
기 | 의미 |
---|---|
QoCFileStatInformation(0x00000001) | 파일 시스템은 QUERY_ON_CREATE_FILE_STAT_INFORMATION 구조에서 파일 통계 정보를 반환합니다. |
QoCFileLxInformation(0x00000002) | 파일 시스템은 확장된 Linux와 유사한 정보를 QUERY_ON_CREATE_FILE_LX_INFORMATION 구조로 반환합니다. |
QoCFileEaInformation(0x00000004) | 파일 시스템은 QUERY_ON_CREATE_EA_INFORMATION 구조에서 EA(확장 특성)를 반환합니다. |
QoCFileUsnInformation(0x00000008) | 파일 시스템은 QUERY_ON_CREATE_USN_INFORMATION 구조에서 USN 정보를 반환합니다. |
QoCFileSecurityInformation(0x00000010) | 파일 시스템은 QUERY_ON_CREATE_SECURITY_INFORMATION 구조에서 파일 보안 정보를 반환합니다. |
[out] RetInfoSize
RetInfoBuffer가 가리키는 버퍼의 크기(바이트)를 받는 ULONG에 대한 포인터입니다.
[out] RetInfoBuffer
요청된 InfoClass 구조체에 대한 포인터를 받습니다. 파일 시스템에서 요청을 처리할 수 있지만 요청된 파일 정보를 찾을 수 없는 경우 이 매개 변수는 NULL로 설정됩니다.
반환 값
반환 코드 | 묘사 |
---|---|
STATUS_SUCCESS | 파일 시스템에서 요청된 파일 정보를 반환했습니다. |
STATUS_NOT_FOUND | 파일 시스템에서 요청을 처리했지만 요청된 정보가 파일에 없거나 파일 시스템에서 InfoClass정보 요청을 인식하지 못합니다. 호출자는 기존 파일 시스템 API를 사용하여 정보를 요청해서는 안 됩니다. |
STATUS_NOT_SUPPORTED | 파일 시스템에서 요청된 정보를 검색할 수 없습니다. 이 오류는 파일 시스템에서 정보 요청 또는 관련 ECP를 지원하지 않거나 파일을 미리 만드는 동안 FltRequestFileInfoOnCreateCompletion 호출되지 않았기 때문에 발생합니다. 대신 호출자는 기존 파일 시스템 API를 사용하여 정보 요청을 다시 시도해야 합니다. |
STATUS_UNSUCCESSFUL | 요청된 정보를 검색하는 동안 파일 시스템에서 오류가 발생했습니다. 호출자는 일반 파일 시스템 API를 통해 정보를 요청할 수 있지만 실패할 수 있습니다. |
발언
FltRequestFileInfoOnCreateCompletion 및 FltRetrieveFileInfoOnCreateCompletionEx 파일을 만드는 동안 미니 필터가 파일에 대한 정보를 가져올 수 있으므로 스택 순회가 필요한 이후 쿼리의 성능 비용을 방지할 수 있습니다.
- 미리 만들기에서 미니 필터는 요청된 정보를 식별하는 입력 InfoClassFlags 조합하여 FltRequestFileInfoOnCreateCompletion 한 번 호출합니다.
- 파일 시스템은 적절한 구조를 할당하고 요청된 정보를 작성을 처리하는 동안 지원되는 경우 채웁니다.
- 사후 만들기에서 미니 필터는 FltRetrieveFileInfoOnCreateCompletionEx 호출하여 사전 만들기 호출에서 요청한 정보를 가져옵니다. 미니 필터가 둘 이상의 정보 유형을 요청한 경우 각 정보 유형에 대해 FltRetrieveFileInfoOnCreateCompletionEx 한 번 호출해야 합니다. 예를 들어:
// Pre-create:
NTSTATUS status;
status = FltRequestFileInfoOnCreateCompletion( Filter,
CallbackData,
QoCFileStatInformation
| QoCFileLxInformation
| QoCFileEaInformation
| QoCFileUsnInformation );
// Post-create:
NTSTATUS status;
ULONG fileStatSize, fileLxSize, fileEaSize;
QUERY_ON_CREATE_FILE_STAT_INFORMATION* fileStatInfo;
QUERY_ON_CREATE_FILE_LX_INFORMATION* fileLxInfo;
QUERY_ON_CREATE_EA_INFORMATION* fileEaInfo;
QUERY_ON_CREATE_USN_INFORMATION* fileUsnInfo;
QUERY_ON_CREATE_SECURITY_INFORMATION* fileSecurityInfo;
status = FltRetrieveFileInfoOnCreateCompletionEx( Filter,
CallbackData,
QoCFileStatInformation,
&fileStatSize,
&fileStatInfo );
status = FltRetrieveFileInfoOnCreateCompletionEx( Filter,
CallbackData,
QoCFileLxInformation,
&fileLxSize,
&fileLxInfo );
status = FltRetrieveFileInfoOnCreateCompletionEx( Filter,
CallbackData,
QoCFileEaInformation,
&fileEaSize,
&fileEaInfo );
status = FltRetrieveFileInfoOnCreateCompletionEx( Filter,
CallbackData,
QoCFileUsnInformation,
&fileUsnInfo,
&fileUsnInfo );
status = FltRetrieveFileInfoOnCreateCompletionEx( Filter,
CallbackData,
QoCFileSecurityInformation,
&fileSecurityInfo,
&fileSecurityInfo);
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 1809 |
헤더 | fltkernel.h |
참고 항목
FltRequestFileInfoOnCreateCompletion
QUERY_ON_CREATE_EA_INFORMATION