Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die FltAllocateExtraCreateParameterList Routine weist seitenseitigen Poolspeicher für eine zusätzliche Create-Parameter-Listenstruktur (ECP) zu und generiert einen Zeiger auf diese Struktur.
Syntax
NTSTATUS FLTAPI FltAllocateExtraCreateParameterList(
[in] PFLT_FILTER Filter,
[in] FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
[out] PECP_LIST *EcpList
);
Parameter
[in] Filter
Undurchsichtiger Filterzeiger für den Minifiltertreiber. Dieser Zeiger identifiziert den Minifiltertreiber eindeutig und bleibt konstant, solange der Minifiltertreiber geladen wird.
[in] Flags
Definiert Poolzuordnungsoptionen. Wenn das FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA-Flag mit dem Flags Parameter kombiniert wird, indem ein bitweiser OR-Vorgang verwendet wird, wird jeder von der Routine zugewiesene Pool mit dem Speicherkontingent des aktuellen Prozesses belastet.
[out] EcpList
Empfängt einen Zeiger auf eine initialisierte ECP-Listenstruktur. Wenn die Routine nicht genügend Pool zuordnen konnte, wird *EcpList-NULL-, und die Routine gibt statuscode STATUS_INSUFFICIENT_RESOURCES zurück.
Rückgabewert
FltAllocateExtraCreateParameterList kann einen der folgenden Werte zurückgeben:
| Rückgabecode | Beschreibung |
|---|---|
| STATUS_INSUFFICIENT_RESOURCES | FltAllocateExtraCreateParameterList konnte nicht genügend Arbeitsspeicher für eine ECP-Listenstruktur zuordnen. In diesem Fall ist *EcpList-NULL-. |
| STATUS_SUCCESS | Die ECP-Listenstruktur wurde erfolgreich zugeordnet und initialisiert. In diesem Fall wird ein Zeiger auf die initialisierte Listenstruktur im *EcpList-Parameter zurückgegeben. |
Bemerkungen
Gibt an, ob das Betriebssystem automatisch Arbeitsspeicher freigibt, der FltAllocateExtraCreateParameterList zugeordnet wird, hängt davon ab, wann FltAllocateExtraCreateParameterList aufgerufen wird, wie in den folgenden Situationen gezeigt:
Ein Aufrufer kann FltAllocateExtraCreateParameterList aufrufen, um die ECP_LIST zuzuweisen und eine oder mehrere ECP-Kontextstrukturen hinzuzufügen, bevor der Aufrufer die FltCreateFileEx2 Routine aufruft. In dieser Situation befreit das Betriebssystem keine der ECP-Kontextstrukturen. Daher kann der Aufrufer mehrere Aufrufe an FltCreateFileEx2 mit demselben ECP-Satz durchführen. Wenn der Aufrufer mit dem ECP_LIST abgeschlossen ist, muss der Aufrufer die FltFreeExtraCreateParameterList Routine aufrufen, um die ECP_LIST freizurufen.
Während ein Dateisystemfiltertreiber eine IRP_MJ_CREATE Anforderung verarbeitet, kann der Dateisystemfiltertreiber FltInsertExtraCreateParameter- aufrufen, um ein ECP an eine vorhandene ECP_LIST anzufügen. Wenn die ECP_LIST nicht vorhanden ist, muss der Aufrufer FltAllocateExtraCreateParameterList- aufrufen, um die ECP_LIST zu erstellen. In diesem Fall werden die ECP_LIST und die ECP-Kontextstruktur automatisch vom E/A-Manager bereinigt, wenn der Erstellungsvorgang abgeschlossen ist. Dadurch kann der ECP eines Filtertreibers ordnungsgemäß über die Verarbeitung von Analysepunkten verteilt werden. Für diesen Vorgang müssen möglicherweise mehrere IRP_MJ_CREATE Anforderungen generiert werden.
Wenn das FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA Flag mit dem Flags Parameter verwendet wird, wie oben beschrieben, wird ein normaler ausgelagerter Pool zugewiesen. Andernfalls wird ein ausgelagerter Pool mithilfe einer internen Lookaside-Liste zugewiesen.
ECP_LIST Struktur
ECP_LIST ist eine undurchsichtige Struktur, die vom Betriebssystem deklariert wird. ECP_LIST enthält eine Liste mit zusätzlichen ECP-Einträgen (Create Parameter).
Die FltAllocateExtraCreateParameterList Routine muss verwendet werden, um Speicher für die ECP_LIST Struktur zuzuweisen. Der von FltAllocateExtraCreateParameterList zugeordnete Speicher wird vom Betriebssystem nicht automatisch freigegeben; sie muss explizit durch Aufrufen der FltFreeExtraCreateParameterList Routine behandelt werden. Beachten Sie, dass alle verbleibenden ECP-Listenelemente automatisch freigegeben werden, wenn FltFreeExtraCreateParameterList aufgerufen wird.
Der PECP_LIST Datentyp wird verwendet, um einen Zeiger auf eine Variable vom Typ ECP_LIST zu deklarieren.
Syntax
struct ECP_LIST {
; // Reserved.
};
Die ECP_LIST Struktur wird in Ntifs.h deklariert (einschließlich Ntifs.h).
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Diese Routine ist ab Windows Vista verfügbar. |
| Zielplattform- | Universal |
| Header- | fltkernel.h (include Fltkernel.h) |
| Library | FltMgr.lib |
| IRQL- | <= APC_LEVEL |
Siehe auch
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList