FLT_PARAMETERS для объединения IRP_MJ_SET_INFORMATION
Компонент объединения используется, когда поле MajorFunction структуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_SET_INFORMATION.
Синтаксис
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
PFILE_OBJECT ParentOfTarget;
union {
struct {
BOOLEAN ReplaceIfExists;
BOOLEAN AdvanceOnly;
};
ULONG ClusterCount;
HANDLE DeleteHandle;
};
PVOID InfoBuffer;
} SetFileInformation;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Члены
SetFileInformation: структура, содержащая следующие элементы.
Длина: длина буфера в байтах в InfoBuffer.
FileInformationClass: тип сведений, которые необходимо задать для файла. Это может быть:
Значение Значение FileAllocationInformation Задайте FILE_ALLOCATION_INFORMATION для файла. FileBasicInformation Задайте FILE_BASIC_INFORMATION для файла. FileDispositionInformation Задайте FILE_DISPOSITION_INFORMATION для файла. FileEndOfFileInformation Задайте FILE_END_OF_FILE_INFORMATION для файла. FileLinkInformation Задайте FILE_LINK_INFORMATION для файла. FilePositionInformation Задайте FILE_POSITION_INFORMATION для файла. FileRenameInformation Задайте FILE_RENAME_INFORMATION для файла. FileValidDataLengthInformation Задайте FILE_VALID_DATA_LENGTH_INFORMATION для файла. ParentOfTarget: для операций переименования или связывания. Если InfoBuffer-FileName> содержит полное имя файла или infoBuffer-RootDirectory> не равно NULL, этот элемент является указателем на объект файла для родительского каталога файла, который является целевым объектом операции. В противном случае имеет значение NULL.
( неименованная struct )
Структура, содержащая следующие элементы.ReplaceIfExists: для операций переименования или связывания. Задайте значение TRUE , чтобы указать, что файл, который уже существует с таким же именем, должен быть заменен заданным файлом. Установите значение FALSE , если операция переименования или связывания должна завершиться ошибкой, если файл с заданным именем уже существует.
AdvanceOnly: флаг для операций с завершением работы с файлами. Это определяет использование элемента EndOfFileFILE_END_OF_FILE_INFORMATION структуры при fileInformationClass == FileEndOfFileInformation. Если задано значение TRUE, новая допустимая длина данных для файла будет задана из EndOfFile только в том случае, если она увеличивает текущую допустимую длину данных. Если значение FALSE, новый размер файла задается из EndOfFile.
ClusterCount: зарезервировано для системного использования. Не используйте.
DeleteHandle: зарезервировано для системного использования. Не используйте.
InfoBuffer: указатель на входной буфер, содержащий устанавливаемые сведения о файлах.
Комментарии
Структура FLT_PARAMETERS для операций IRP_MJ_SET_INFORMATION содержит параметры для операции set-information, представленной структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в FLT_IO_PARAMETER_BLOCK структуре.
IRP_MJ_SET_INFORMATION — это операция на основе IRP.
Для элемента AdvanceOnly диспетчер кэша задает значение TRUE , чтобы уведомить файловую систему о том, что текущая допустимая длина данных на диске будет расширена до новой допустимой длины данных в EndOfFile. Если параметр AdvanceOnly имеет значение FALSE, в элементе EndOfFile устанавливается новый размер файла, который может быть больше или меньше текущего размера файла.
Требования
Тип требования | Требование |
---|---|
Заголовок | Fltkernel.h (включая Fltkernel.h) |