IoEnumerateRegisteredFiltersList-Funktion (ntifs.h)
Die IoEnumerateRegisteredFiltersList-Routine listet die Dateisystemfiltertreiber auf, die beim System registriert sind.
Syntax
NTSTATUS IoEnumerateRegisteredFiltersList(
[out] PDRIVER_OBJECT *DriverObjectList,
[in] ULONG DriverObjectListSize,
[out] PULONG ActualNumberDriverObjects
);
Parameter
[out] DriverObjectList
Ein Zeiger auf ein vom Aufrufer zugeordnetes Array, das die Treiberobjektzeiger empfängt. Dieser Parameter ist optional und kann NULL sein. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen.)
[in] DriverObjectListSize
Größe des DriverObjectList-Arrays in Byte. Kann Null sein. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen.)
[out] ActualNumberDriverObjects
Tatsächliche Anzahl der gefundenen Treiberobjekte. Beachten Sie, dass die Anzahl der Treiberobjektzeiger, die in das Array kopiert werden, kleiner als ActualNumberDriverObjects ist, wenn das Array bei DriverObjectList zu klein ist.
Rückgabewert
IoEnumerateRegisteredFiltersList kann eine der folgenden Werte zurückgeben:
Rückgabecode | Beschreibung |
---|---|
STATUS_SUCCESS | Der Aufruf von IoEnumerateRegisteredFiltersList war erfolgreich. |
STATUS_BUFFER_TOO_SMALL | Das Array bei DriverObjectList ist zu klein, um die gesamte Treiberobjektliste zu enthalten. In diesem Fall kopiert IoEnumerateRegisteredFiltersList so viele Treiberobjektzeiger wie möglich in das Array. |
Hinweise
Ein Dateisystemfiltertreiber ruft IoEnumerateRegisteredFiltersList auf, um ein Array von Zeigern auf die Treiberobjekte für alle Dateisystemfiltertreiber abzurufen, die IoRegisterFsRegistrationChange aufgerufen haben.
Die Filtertreiber werden in der Reihenfolge des abnehmenden Abstands vom Basisdateisystem aufgelistet. Das erste Element (Index null) im DriverObjectList-Array stellt den Filter dar, der am weitesten vom Dateisystem entfernt ist. Der zweite Eintrag ist für den nächstfernsten Filter usw. Der letzte Eintrag im Array gilt für den Filter, der dem Basisdateisystem am nächsten ist.
IoEnumerateRegisteredFiltersList listet nur Legacyfiltertreiber auf. Minifilter werden nicht aufgezählt. Rufen Sie FltEnumerateFilterInformation auf, um sowohl Minifilter als auch Ältere Filter oder nur Minifilter aufzulisten.
Der Filtertreiber ruft IoEnumerateRegisteredFiltersList in der Regel zweimal auf: einmal, um die Anzahl der Treiberobjekte in der Liste abzurufen, und einmal, um die Treiberobjektliste selbst abzurufen. Im ersten Aufruf sollte der Aufrufer den DriverObjectList-Parameter auf NULL und DriverObjectListSize auf 0 festlegen. Im zweiten Aufruf sollte DriverObjectList einen Zeiger auf ein Zeigerarray mit entsprechender Größe enthalten, und DriverObjectListSize sollte die Größe dieses Arrays in Bytes enthalten.
IoEnumerateRegisteredFiltersList erhöht die Verweisanzahl für jedes Treiberobjekt in der Liste, auf die driverObjectList verweist. Daher muss jeder erfolgreiche Aufruf von IoEnumerateRegisteredFiltersList durch einen nachfolgenden Aufruf von ObDereferenceObject für jedes Treiberobjekt in der Liste abgeglichen werden. Andernfalls wird verhindert, dass das System diese Treiberobjekte aufgrund einer ausstehenden Verweisanzahl freigibt oder löscht.
Minifilter sollten FltEnumerateFilterInformation oder FltEnumerateFilters anstelle von IoEnumerateRegisteredFiltersList aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Updaterollup für Windows 2000 SP4; Windows Server 2003 SP1 |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für