Freigeben über


ExAllocatePool3-Funktion (wdm.h)

Die ExAllocatePool3 Routine weist den Poolspeicher des angegebenen Typs zu und gibt einen Zeiger auf den zugewiesenen Block zurück. Diese Routine ähnelt ExAllocatePool2, fügt jedoch erweiterte Parameter hinzu.

Syntax

DECLSPEC_RESTRICT PVOID ExAllocatePool3(
  POOL_FLAGS                Flags,
  SIZE_T                    NumberOfBytes,
  ULONG                     Tag,
  PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
  ULONG                     ExtendedParametersCount
);

Parameter

Flags

Ein ULONG64 typisierter Wert, der den Typ des Poolspeichers zusammen mit erforderlichen und optionalen Attributen angibt. Mehrere Kennzeichenwerte können mit Bitweise ODER kombiniert werden. Mögliche Werte finden Sie unter POOL_FLAGS.

NumberOfBytes

Gibt eine Nicht-Null-Anzahl von Bytes an, die zugewiesen werden sollen.

Tag

Das Pooltag, das für den zugewiesenen Speicher verwendet werden soll. Geben Sie das Pooltag als Nicht-Null-Zeichenliteral von 1 bis vier Zeichen an, die durch einfache Anführungszeichen (z. B. Tag1) getrennt sind. Die Zeichenfolge wird in der Regel in umgekehrter Reihenfolge angegeben (z. B. 1gaT). Jedes ASCII-Zeichen im Tag muss ein Wert im Bereich 0x20 (Leerzeichen) sein, um 0x7E (Tilde) zu 0x7E. Jeder Zuordnungscodepfad sollte ein eindeutiges Pooltag verwenden, um Debuggern und Prüfern bei der Identifizierung des Codepfads zu helfen.

ExtendedParameters

Ein Zeiger auf ein Array von POOL_EXTENDED_PARAMETER Strukturen, die zusätzliche Attribute für die Zuordnung angeben.

ExtendedParametersCount

Ein ULONG-Wert, der die Anzahl der Parameter in ExtendedParametersangibt.

Rückgabewert

ExAllocatePool3 gibt einen Zeiger auf den zugewiesenen Speicher zurück.

Die folgenden Bedingungen führen dazu, dass die Funktion STANDARDMÄßIG NULL zurückgibt. Wenn POOL_FLAG_RAISE_ON_FAILURE angegeben ist, löst die Funktion eine Ausnahme aus.

  • Nicht genügend Arbeitsspeicher
  • Tag- auf 0 oder ungültige POOL_FLAGS festgelegt ist, werden angegeben.
  • Ungültige POOL_EXTENDED_PARAMETER Strukturen

Bemerkungen

Wenn Sie einen Treiber erstellen, der auf Versionen von Windows vor Windows 10, Version 2004 ausgerichtet ist, verwenden Sie ExAllocatePoolPriorityZero oder ExAllocatePoolPriorityUninitialized.

Weitere Informationen finden Sie in den Hinweisen ExAllocatePool2-.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 2004
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs, SpNoWait, StorPortStartIo

Siehe auch

ExAllocatePool2