MmDoesFileHaveUserWritableReferences, fonction (ntifs.h)
La fonction MmDoesFileHaveUserWritableReferences détermine si un fichier associé à une transaction comporte des sections mappées par l’utilisateur.
Syntaxe
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
Paramètres
[in] SectionPointer
Pointeur vers une structure SECTION_OBJECT_POINTERS qui contient les pointeurs d’objet de section de l’objet de fichier. Ce paramètre est obligatoire et ne peut pas être NULL.
Valeur de retour
MmDoesFileHaveUserWritableReferences retourne l’une des valeurs suivantes.
Valeur de retour | Signification |
---|---|
0 | L’objet fichier n’a pas de sections mappées par l’utilisateur. Il est sûr de procéder à la transaction. |
1 | L’objet fichier comporte des sections mappées par l’utilisateur. La transaction doit être restaurée. |
Remarques
Pour les systèmes de fichiers transactionnels, vous pouvez utiliser cette fonction pour déterminer si une transaction donnée fait référence à un objet de fichier qui peut changer. Si c’est le cas, la transaction doit être restaurée, car atomicité ne peut pas être garantie.
Avant d’appeler MmDoesFileHaveUserWritableReferences, les systèmes de fichiers transactionnels doivent vérifier et intercepter la création d’objets de fichier qui spécifient l’accès en écriture. Plus précisément, avant de démarrer une transaction, les systèmes de fichiers transactionnels doivent s’assurer qu’il n’existe aucun objet de fichier accessible en écriture qui existe actuellement pour le fichier donné dans la transaction. Pendant que la transaction est en cours, les systèmes de fichiers transactionnels doivent échouer aux demandes de création d’objets de fichier avec accès en écriture pour les fichiers traités.
Cette fonction peut être utilisée pour détecter s’il existe des vues accessibles en écriture pour un objet de fichier, même lorsque tous les handles de fichier et handles de section pour l’objet de fichier ont été fermés.
Pour plus d’informations sur les transactions, consultez kernel Transaction Manager .
Pour plus d’informations sur les objets de fichier, consultez FILE_OBJECT.