Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма IoCreateStreamFileObjectLite создает новый объект файла потока, но не вызывает отправку запроса IRP_MJ_CLEANUP в стек драйверов файловой системы.
Синтаксис
PFILE_OBJECT IoCreateStreamFileObjectLite(
[in, optional] PFILE_OBJECT FileObject,
[in, optional] PDEVICE_OBJECT DeviceObject
);
Параметры
[in, optional] FileObject
Указатель на объект файла, к которому связан новый файл потока. Этот параметр является необязательным и может быть null.
[in, optional] DeviceObject
Указатель на объект устройства, на котором должен быть открыт файл потока. Если вызывающий объект задает значение, отличное отNULL для FileObject, значение DeviceObject игнорируется. В противном случае вызывающий объект должен указать значение, отличное отNULL для DeviceObject.
Возвращаемое значение
IoCreateStreamFileObjectLite возвращает указатель на созданный объект файла потока.
Замечания
Файловые системы вызывают IoCreateStreamFileObjectLite для создания объекта файла потока. Объект потокового файла идентичен обычному объекту файла, за исключением того, что установлен флаг объекта FO_STREAM_FILE файла.
Объект файла потока обычно используется для представления внутреннего потока для тома, подключенного файловой системой. Этот файл виртуального тома позволяет файловой системе просматривать, изменять и кэшировать структуру тома на диске, как если бы это был обычный файл. В этом случае параметр DeviceObject в вызове IoCreateStreamFileObjectLite указывает объект устройства тома (VDO) для тома.
Объект файла потока также можно использовать для представления альтернативного потока данных для доступа к метаданным, таким как расширенные атрибуты или дескрипторы безопасности для уже открытого файла. В этом случае параметр FileObject в вызове IoCreateStreamFileObjectLite указывает существующий объект файла. Созданный объект потока позволяет файловой системе просматривать, изменять и кэшировать метаданные файла, как если бы это был обычный файл.
Если объект файла потока больше не нужен, вызывающий объект должен уменьшать количество ссылок путем вызова ObDereferenceObject. Когда число ссылок объекта потока достигает нуля, запрос IRP_MJ_CLOSE отправляется в стек драйверов файловой системы для тома.
Записи драйверов фильтров файловой системы должны отметить, что в отличие от IoCreateStreamFileObject, IoCreateStreamFileObjectLite не приводит к отправке запроса IRP_MJ_CLEANUP в стек драйверов файловой системы. По этой причине, так как файловые системы часто создают объекты потоковых файлов в качестве побочных эффектов операций, отличных от IRP_MJ_CREATE, трудно надежно обнаруживать создание объекта файла потока. Таким образом, драйверы фильтров должны ожидать получения IRP_MJ_CLOSE запросов для ранее незамеченных файловых объектов.
Если возникает сбой выделения пула, IoCreateStreamFileObject Lite вызывает исключение STATUS_INSUFFICIENT_RESOURCES.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 2000 |
| целевая платформа | Всеобщий |
| заголовка | ntifs.h (include Ntifs.h) |
| библиотеки | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | < DISPATCH_LEVEL |