mirror of
https://github.com/BeneficialCode/WinArk.git
synced 2026-10-18 05:36:10 +08:00
42 lines
1.0 KiB
C++
42 lines
1.0 KiB
C++
#pragma once
|
|
|
|
enum class FileNameOptions {
|
|
Normalized = FLT_FILE_NAME_NORMALIZED,
|
|
Opened = FLT_FILE_NAME_OPENED,
|
|
Short = FLT_FILE_NAME_SHORT,
|
|
|
|
QueryDefault = FLT_FILE_NAME_QUERY_DEFAULT,
|
|
QueryCacheOnly = FLT_FILE_NAME_QUERY_CACHE_ONLY,
|
|
QueryFileSystemOnly = FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY,
|
|
|
|
RequestFromCurrentProvider = FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER,
|
|
DoNotCache = FLT_FILE_NAME_DO_NOT_CACHE,
|
|
AllowQueryOnReparse = FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE
|
|
};
|
|
DEFINE_ENUM_FLAG_OPERATORS(FileNameOptions);
|
|
|
|
struct FilterFileNameInformation {
|
|
FilterFileNameInformation(PFLT_CALLBACK_DATA data, FileNameOptions options = FileNameOptions::QueryDefault | FileNameOptions::Normalized);
|
|
~FilterFileNameInformation();
|
|
|
|
operator bool() const {
|
|
return m_info != nullptr;
|
|
}
|
|
|
|
PFLT_FILE_NAME_INFORMATION Get() const {
|
|
return m_info;
|
|
}
|
|
|
|
operator PFLT_FILE_NAME_INFORMATION() const {
|
|
return Get();
|
|
}
|
|
|
|
PFLT_FILE_NAME_INFORMATION operator->() {
|
|
return m_info;
|
|
}
|
|
|
|
NTSTATUS Parse();
|
|
|
|
private:
|
|
PFLT_FILE_NAME_INFORMATION m_info;
|
|
}; |