Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función MmDoesFileHaveUserWritableReferences determina si un archivo asociado a una transacción tiene secciones asignadas por el usuario.
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 necesario y no se puede NULL.
Valor devuelto
MmDoesFileHaveUserWritableReferences devuelve uno de los siguientes valores.
Valor devuelto | Significado |
---|---|
0 | El objeto de archivo no tiene secciones asignadas por el usuario. Es seguro continuar con la transacción. |
1 | El objeto de archivo tiene secciones asignadas por el usuario. La transacción debe revertirse. |
Observaciones
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 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 ningún objeto de archivo grabable que exista 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 transaccionados.
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, consulte administrador de transacciones de kernel.
Para obtener más información sobre los objetos de archivo, vea FILE_OBJECT.