Funzione MmDoesFileHaveUserWritableReferences (ntifs.h)
La funzione MmDoesFileHaveUserWritableReferences determina se un file associato a una transazione include sezioni mappate dall'utente.
Sintassi
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
Parametri
[in] SectionPointer
Puntatore a una struttura SECTION_OBJECT_POINTERS che contiene i puntatori agli oggetti sezione dell'oggetto file. Questo parametro è obbligatorio e non può essere NULL.
Valore restituito
MmDoesFileHaveUserWritableReferences restituisce uno dei valori seguenti.
Valore restituito | Significato |
---|---|
0 | L'oggetto file non include sezioni mappate dall'utente. È sicuro procedere con la transazione. |
1 | L'oggetto file include sezioni mappate dall'utente. È necessario eseguire il rollback della transazione. |
Osservazioni
Per i file system transazionali, è possibile usare questa funzione per determinare se una determinata transazione fa riferimento a un oggetto file che può cambiare. In tal caso, è necessario eseguire il rollback della transazione perché non è possibile garantire atomicità.
Prima di chiamare MmDoesFileHaveUserWritableReferences, i file system transazionali devono controllare e intercettare la creazione di oggetti file che specificano l'accesso in scrittura. In particolare, prima di avviare una transazione, i file system transazionali devono assicurarsi che non esistano oggetti file scrivibili attualmente presenti per il file specificato nella transazione. Mentre la transazione è in corso, i file system transazionali devono non riuscire a creare oggetti file con accesso in scrittura per i file transazionali.
Questa funzione può essere usata per rilevare se sono presenti visualizzazioni scrivibili per un oggetto file anche quando tutti gli handle di file e gli handle di sezione per l'oggetto file sono stati chiusi.
Per altre informazioni sulle transazioni, vedere Kernel Transaction Manager.
Per altre informazioni sugli oggetti file, vedere FILE_OBJECT.