Функция MmDoesFileHaveUserWritableReferences (ntifs.h)

Функция MmDoesFileHaveUserWritableReferences возвращает количество записываемых ссылок для объекта файла.

Синтаксис

ULONG MmDoesFileHaveUserWritableReferences(
  [in] PSECTION_OBJECT_POINTERS SectionPointer
);

Параметры

[in] SectionPointer

Указатель на структуру SECTION_OBJECT_POINTERS , содержащую указатели на объект раздела файлового объекта. Этот параметр является обязательным и не может иметь значение NULL.

Возвращаемое значение

MmDoesFileHaveUserWritableReferences возвращает количество доступных для записи ссылок на объект файла, связанный с параметром SectionPointer .

Комментарии

MmDoesFileHaveUserWritableReferences возвращает количество доступных для записи ссылок на объект файла, связанный с параметром SectionPointer . Это возвращаемое значение представляет собой сумму следующих чисел:

  • Количество дескрипторов файлов, доступных для записи, для связанного объекта файла.

  • Количество записываемых разделов для связанного объекта файла.

  • Количество доступных для записи представлений для связанного объекта файла.

  • Число невыполненных MDL-файлов, которые являются областями сопоставления для связанного объекта файла.

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

Перед вызовом MmDoesFileHaveUserWritableReferences транзакционные файловые системы должны проверка и перехватывать создание файловых объектов, определяющих доступ на запись. В частности, перед началом транзакции транзакционные файловые системы должны убедиться в отсутствии доступных для записи файловых объектов, которые в настоящее время существуют для данного файла в транзакции. Пока транзакция выполняется, транзакционные файловые системы должны завершать запросы на создание объектов файлов с доступом на запись для транзакционных файлов.

Примечание

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

Дополнительные сведения о транзакциях см. в разделе Диспетчер транзакций ядра.

Дополнительные сведения об объектах файлов см. в разделе FILE_OBJECT.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Fltkernel.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport)