Поделиться через


структура FILE_DISPOSITION_INFORMATION_EX (ntddk.h)

Структура FILE_DISPOSITION_INFORMATION_EX используется в качестве аргумента для процедуры ZwSetInformationFile и указывает, как операционная система должна удалять файл.

Синтаксис

typedef struct _FILE_DISPOSITION_INFORMATION_EX {
  ULONG Flags;
} FILE_DISPOSITION_INFORMATION_EX, *PFILE_DISPOSITION_INFORMATION_EX;

Члены

Flags

Указывает, какие действия должна выполнять система с определенным файлом при удалении.

Имя флага Ценность Значение
FILE_DISPOSITION_DO_NOT_DELETE 0x00000000 Указывает, что система не должна удалять файл.
FILE_DISPOSITION_DELETE 0x00000001 Указывает, что система должна удалить файл.
FILE_DISPOSITION_POSIX_SEMANTICS 0x00000002 Указывает, что система должна выполнять удаление в стиле POSIX. Дополнительные сведения см. в примечаниях.
FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK 0x00000004 Указывает, что система должна принудительно проверить раздел изображения.
FILE_DISPOSITION_ON_CLOSE 0x00000008 Указывает, устанавливает ли система или очищает состояние закрытия.
FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE 0x00000010 Позволяет удалять файлы только для чтения. Дополнительные сведения см. в разделе "Примечания" ниже.

Замечания

Вызывающий объект должен иметь доступ DELETE к указанному файлу для вызова ZwSetInformationFile с FILE_DISPOSITION_DELETE.

Если FILE_DISPOSITION_POSIX_SEMANTICS не задано, файл, помеченный для удаления, не удаляется до тех пор, пока все открытые дескрипторы для файла не будут закрыты, а число ссылок для файла равно нулю. При установке FILE_DISPOSITION_POSIX_SEMANTICS ссылка удаляется из видимого пространства имен сразу после закрытия дескриптора удаления POSIX, но потоки данных файла остаются доступными другими существующими дескрипторами до закрытия последнего дескриптора. То есть приложения, которые уже открыли файл, по-прежнему могут использовать их дескриптор для чтения и записи, даже если имя, которое они использовали для открытия, исчезло, и число ссылок файла, возможно, достигло нуля.

Если файл удаляется по запросу пользователя, использование семантики POSIX позволяет системе удалять файл по запросу, но также позволяет любому процессу с открытым дескриптором продолжать доступ к данным файла до тех пор, пока дескриптор открыт.

Возвращаемое значение STATUS_CANNOT_DELETE указывает, что файл доступен только для чтения или существует существующее сопоставленное представление с файлом.

Требования

Требование Ценность
заголовка ntddk.h (include Ntddk.h, Ntifs.h)

См. также

ZwClose

ZwSetInformationFile