ExAllocatePool3-Funktion (wdm.h)

Die ExAllocatePool3-Routine weist den Poolspeicher des angegebenen Typs zu und gibt einen Zeiger auf den zugeordneten 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 typisierten Wert, der den Typ des Poolspeichers zusammen mit den erforderlichen und optionalen Attributen angibt. Mehrere Flagwerte können bitweise oder kombiniert werden. Mögliche Werte finden Sie unter POOL_FLAGS .

NumberOfBytes

Gibt eine Ungleich null-Anzahl von Bytes an, die zugewiesen werden sollen.

Tag

Das Pooltag, das für den zugewiesenen Arbeitsspeicher verwendet werden soll. Geben Sie das Pooltag als Zeichenliteral ungleich 0 von 1 bis vier Zeichen an, Tag1die durch einzelne Anführungszeichen getrennt sind (z. B. ). Die Zeichenfolge wird normalerweise in umgekehrter Reihenfolge angegeben (z. B. 1gaT). Jedes ASCII-Zeichen im Tag muss ein Wert im Bereich 0x20 (Leerzeichen) bis 0x7E (Tilde) sein. Jeder Zuordnungscodepfad sollte ein eindeutiges Pooltag verwenden, um Debuggern und Prüfern beim Identifizieren 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 von Parametern in ExtendedParameters angibt.

Rückgabewert

ExAllocatePool3 gibt einen Zeiger auf den zugeordneten Arbeitsspeicher 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.

  • Der Arbeitsspeicher reicht nicht aus
  • Tag ist auf 0 festgelegt, oder ungültige POOL_FLAGS angegeben sind
  • Ungültige POOL_EXTENDED_PARAMETER Strukturen

Hinweise

Wenn Sie einen Treiber für Windows-Versionen vor Windows 10 Version 2004 erstellen, verwenden Sie ExAllocatePoolPriorityZero oder ExAllocatePoolPriorityUninitialized.

Weitere Informationen finden Sie in den Anmerkungen von ExAllocatePool2 .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (siehe Abschnitt Hinweise)
DDI-Complianceregeln HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Weitere Informationen

ExAllocatePool2