Freigeben über


MmDoesFileHaveUserWritableReferences-Funktion (ntifs.h)

Die MmDoesFileHaveUserWritableReferences-Funktion gibt die Anzahl der beschreibbaren Verweise für ein Dateiobjekt zurück.

Syntax

ULONG MmDoesFileHaveUserWritableReferences(
  [in] PSECTION_OBJECT_POINTERS SectionPointer
);

Parameter

[in] SectionPointer

Zeiger auf eine SECTION_OBJECT_POINTERS-Struktur , die die Abschnittsobjektzeiger des Dateiobjekts enthält. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

MmDoesFileHaveUserWritableReferences gibt die Anzahl der beschreibbaren Verweise für das Dateiobjekt zurück, das dem SectionPointer-Parameter zugeordnet ist.

Hinweise

MmDoesFileHaveUserWritableReferences gibt die Anzahl der beschreibbaren Verweise für das Dateiobjekt zurück, das dem SectionPointer-Parameter zugeordnet ist. Dieser Rückgabewert ist die Summe der folgenden Zahlen:

  • Die Anzahl der beschreibbaren Dateihandles für das zugeordnete Dateiobjekt.

  • Die Anzahl der beschreibbaren Abschnitte für das zugeordnete Dateiobjekt.

  • Die Anzahl der beschreibbaren Ansichten für das zugeordnete Dateiobjekt.

  • Die Anzahl der ausstehenden MDLs, bei denen Es sich um Zuordnungsregionen für das zugeordnete Dateiobjekt handelt.

Bei transaktionsbasierten Dateisystemen können Sie diese Funktion verwenden, um zu bestimmen, ob eine bestimmte Transaktion auf ein Dateiobjekt verweist, das sich ändern kann. Wenn ja, muss für die Transaktion ein Rollback ausgeführt werden, da die Atomität nicht garantiert werden kann.

Vor dem Aufrufen von MmDoesFileHaveUserWritableReferences müssen transaktionsbasierte Dateisysteme die Erstellung von Dateiobjekten, die Schreibzugriff angeben, überprüfen und abfangen. Insbesondere müssen transaktionsbasierte Dateisysteme vor dem Starten einer Transaktion sicherstellen, dass keine beschreibbaren Dateiobjekte vorhanden sind, die derzeit für die angegebene Datei in der Transaktion vorhanden sind. Während der Transaktion müssen Transaktionsdateisysteme die Anforderungen zum Erstellen von Dateiobjekten mit Schreibzugriff für die ausgeführten Dateien nicht ausführen.

Hinweis

Diese Funktion kann verwendet werden, um zu erkennen, ob beschreibbare Ansichten für ein Dateiobjekt vorhanden sind, auch wenn alle Dateihandles und Abschnittshandles für das Dateiobjekt geschlossen wurden.

Weitere Informationen zu Transaktionen finden Sie unter Kerneltransaktions-Manager.

Weitere Informationen zu Dateiobjekten finden Sie unter FILE_OBJECT.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Universell
Header ntifs.h (einschließlich Fltkernel.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport)