Función MmDoesFileHaveUserWritableReferences (ntifs.h)
La función MmDoesFileHaveUserWritableReferences devuelve el número de referencias grabables para un objeto de archivo.
Sintaxis
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
Parámetros
[in] SectionPointer
Puntero a una estructura de SECTION_OBJECT_POINTERS que contiene los punteros de objeto de sección del objeto de archivo. Este parámetro es obligatorio y no puede ser NULL.
Valor devuelto
MmDoesFileHaveUserWritableReferences devuelve el número de referencias grabables para el objeto de archivo asociado al parámetro SectionPointer .
Comentarios
MmDoesFileHaveUserWritableReferences devuelve el número de referencias grabables para el objeto de archivo asociado al parámetro SectionPointer . Este valor devuelto es la suma de los números siguientes:
Número de identificadores de archivo grabable para el objeto de archivo asociado.
Número de secciones grabables para el objeto de archivo asociado.
Número de vistas grabables para el objeto de archivo asociado.
Número de MDLpendientes, que son regiones de asignación para el objeto de archivo asociado.
En el caso de los sistemas de archivos transaccionales, puede usar esta función para determinar si una transacción determinada hace referencia a un objeto de archivo que puede cambiar. Si es así, la transacción debe revertirse porque no se puede garantizar la atomicidad .
Antes de llamar a MmDoesFileHaveUserWritableReferences, los sistemas de archivos transaccionales deben comprobar e interceptar la creación de objetos de archivo que especifican el acceso de escritura. En concreto, antes de iniciar una transacción, los sistemas de archivos transaccionales deben asegurarse de que no haya objetos de archivo grabables que existan actualmente para el archivo especificado en la transacción. Mientras la transacción está en curso, los sistemas de archivos transaccionales deben producir un error en las solicitudes para crear objetos de archivo con acceso de escritura para los archivos de transacción.
Nota
Esta función se puede usar para detectar si hay vistas grabables para un objeto de archivo incluso cuando se han cerrado todos los identificadores de archivo y identificadores de sección para el objeto de archivo.
Para obtener más información sobre las transacciones, vea Administrador de transacciones de kernel.
Para obtener más información sobre los objetos de archivo, vea FILE_OBJECT.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Fltkernel.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport) |