FsRtlAllocateExtraCreateParameterList-Funktion (ntifs.h)
Die FsRtlAllocateExtraCreateParameterList-Routine weist ausgelagerten Poolspeicher für eine ECP_LIST-Struktur zu und generiert einen Zeiger auf diese Struktur.
Syntax
NTSTATUS FsRtlAllocateExtraCreateParameterList(
[in] FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
[out] PECP_LIST *EcpList
);
Parameter
[in] Flags
Definiert Optionen für die Poolzuordnung. Wenn das FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA-Flag mit dem Flags-Parameter mithilfe eines bitweisen OR-Vorgangs kombiniert wird, wird jedem pool, der von FsRtlAllocateExtraCreateParameterList zugeordnet wird, das Speicherkontingent des aktuellen Prozesses in Rechnung gestellt.
[out] EcpList
Empfängt einen Zeiger auf eine initialisierte ECP-Listenstruktur. Wenn FsRtlAllocateExtraCreateParameterList keinen ausreichenden Pool zuordnen konnte, ist *EcpList NULL, und FsRtlAllocateExtraCreateParameterList gibt status Code STATUS_INSUFFICIENT_RESOURCES zurück.
Rückgabewert
FsRtlAllocateExtraCreateParameterList kann einen der folgenden Werte zurückgeben:
Rückgabecode | Beschreibung |
---|---|
STATUS_INSUFFICIENT_RESOURCES | FsRtlAllocateExtraCreateParameterList konnte nicht genügend Arbeitsspeicher für eine ECP-Listenstruktur zuweisen. In diesem Fall ist *EcpList NULL. |
STATUS_SUCCESS | Der Arbeitsspeicher für die ECP_LIST-Struktur wurde erfolgreich zugeordnet und initialisiert. In diesem Fall wird im EcpList-Parameter ein Zeiger auf die initialisierte Listenstruktur zurückgegeben. |
Hinweise
Ob das Betriebssystem automatisch Arbeitsspeicher freigibt, den FsRtlAllocateExtraCreateParameterList zuordnet, hängt davon ab, wann FsRtlAllocateExtraCreateParameterList aufgerufen wird, wie in den folgenden Situationen gezeigt:
Ein Aufrufer kann FsRtlAllocateExtraCreateParameterList aufrufen, um die ECP_LIST zuzuordnen und eine oder mehrere ECP-Kontextstrukturen hinzuzufügen, bevor der Aufrufer die IoCreateFileEx-Routine aufruft. In dieser Situation gibt das Betriebssystem keine ecp-Kontextstrukturen frei. Daher kann der Aufrufer mehrere Aufrufe an IoCreateFileEx mit demselben ECP-Satz ausführen. Wenn der Aufrufer mit dem ECP_LIST abgeschlossen ist, muss der Aufrufer die FltFreeExtraCreateParameter-Routine aufrufen, um die ECP_LIST frei zu geben.
Während ein Dateisystem- oder Dateisystemfiltertreiber eine IRP_MJ_CREATE Anforderung verarbeitet, kann der Dateisystem- oder Dateisystemfiltertreiber FltInsertExtraCreateParameter aufrufen, um ein ECP an eine vorhandene ECP_LIST anzufügen. Wenn die ECP_LIST nicht vorhanden ist, muss der Aufrufer FsRtlAllocateExtraCreateParameterList 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 Dateisystem- oder Filtertreibers ordnungsgemäß über die Verarbeitung von Analysepunkten verteilt werden. Für diesen Prozess 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, wird ein ausgelagerter Pool zugeordnet. Andernfalls wird ein ausgelagerter Pool mithilfe einer internen Lookaside-Liste zugeordnet.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Weitere Informationen
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList