FsRtlAllocateExtraCreateParameterList-Funktion (ntifs.h)
Die FsRtlAllocateExtraCreateParameterList Routine weist seitenseitigen 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 Poolzuordnungsoptionen. Wenn das FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA Flag mit dem Flags Parameter kombiniert wird, indem ein bitweiser OR-Vorgang verwendet wird, werden alle pools, die von FsRtlAllocateExtraCreateParameterList zugeordnet werden, dem Speicherkontingent des aktuellen Prozesses in Rechnung gestellt.
[out] EcpList
Empfängt einen Zeiger auf eine initialisierte ECP-Listenstruktur. Wenn FsRtlAllocateExtraCreateParameterList nicht genügend Pool zuordnen konnte, *EcpList- ist NULL und FsRtlAllocateExtraCreateParameterList gibt Statuscode 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 zuordnen. In diesem Fall ist *EcpList- NULL. |
STATUS_SUCCESS | Der Speicher für die ECP_LIST-Struktur 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 FsRtlAllocateExtraCreateParameterList zugeordnet wird, hängt davon ab, wann FsRtlAllocateExtraCreateParameterList aufgerufen wird, wie in den folgenden Situationen gezeigt:
Ein Aufrufer kann FsRtlAllocateExtraCreateParameterList aufrufen, um die ECP_LIST zuzuweisen und eine oder mehrere ECP-Kontextstrukturen hinzuzufügen, bevor der Aufrufer die IoCreateFileEx- Routine aufruft. In dieser Situation befreit das Betriebssystem keine der ECP-Kontextstrukturen. Daher kann der Aufrufer mehrere Aufrufe an IoCreateFileEx mit demselben ECP-Satz durchführen. Wenn der Aufrufer mit dem ECP_LIST abgeschlossen ist, muss der Aufrufer die FltFreeExtraCreateParameter Routine aufrufen, um die ECP_LIST freizurufen.
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. Auf diese Weise kann das ECP eines Dateisystems oder eines Filtertreibers über die Verarbeitung von Analysepunkten ordnungsgemäß 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 parameter Flags verwendet wird, wird ein ausgelagerter Pool zugewiesen. Andernfalls wird ein ausgelagerter Pool mithilfe einer internen Lookaside-Liste zugewiesen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |
Siehe auch
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList
FltFreeExtraCreateParameterList