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


структура 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 (включая Ntddk.h, Ntifs.h)

См. также раздел

ZwClose

ZwSetInformationFile