Файловые объекты
Файловые объекты (file objects) выполняют функцию логического интерфейса между ядром и пользовательским (непривилегированным) режимом обработки и данными файла, которые постоянно находится на физическом диске. Файловый объект содержит в себе и записанные данные в файл и ниже перечисленные установки, поддерживаемых ядром атрибутов.
Информационный тип | Предназначение |
---|---|
Имя файла | Имена соответствующего физического файла. |
Смещение текущих байтов | Используется в синхронном файловом вводе - выводе I/O (рассматриваемом позже в этом разделе), чтобы идентифицировать стартовое местоположение операций чтения и записи. |
Режим совместного доступа | Устанавливает, может ли второй процесс открыть файл для чтения, записи или получить доступ к удалению (объекта) в то время, когда начальный процесс все еще обращается к нему. |
Режим ввода - вывода (I/O) | Определяет ли начальный процесс открытый файл для синхронного или асинхронного ввода - вывода (I/O), кэшируемого или некэшируемого ввода - вывода (I/O), последовательного или произвольного ввода - вывода (I/O), и т.д. |
Указатель на объект устройства | Идентифицирует физическое устройство, на котором постоянно находятся данные файла. |
Указатель на том или VPB | Идентифицирует том или раздел диска, на котором постоянно находятся данные файла. |
Указатель на указатели секционных объектов | Идентифицирует корневую структуру, которая описывает отображаемый файл (mapped file). |
Указатель на собственное отображение кэша | Идентифицирует данные файла, который в текущий момент кэшируются. |
Эти атрибуты определяются как часть структуры FILE_OBJECT в заголовочном файле Ntddk.h. Обращайтесь к определениям этой структуры для длин данных и типов значений в документации Комплекта драйверов устройств (DDK).