WDF_ALIGN_SIZE_UP-Funktion (wdfcore.h)

[Gilt für KMDF und UMDF]

Die WDF_ALIGN_SIZE_UP-Funktion gibt die nächsthöhere Puffergröße zurück, die an einem angegebenen Ausrichtungsoffset ausgerichtet ist.

Syntax

size_t WDF_ALIGN_SIZE_UP(
  [in] size_t Length,
  [in] size_t AlignTo
);

Parameter

[in] Length

Die Länge eines Speicherpuffers in Bytes.

[in] AlignTo

Der Ausrichtungsoffset in Bytes. Dieser Wert muss eine Potenz von 2 sein, z. B. 2, 4, 8, 16 usw.

Rückgabewert

WDF_ALIGN_SIZE_UP gibt die ausgerichtete Puffergröße in Bytes zurück.

Hinweise

Treiber können WDF_ALIGN_SIZE_UP oder WDF_ALIGN_SIZE_DOWN verwenden, um eine Puffergröße zu berechnen, die an einem angegebenen Ausrichtungsoffset ausgerichtet ist. Diese Berechnung ist nützlich, wenn Ihr Treiber mehrere zusammenhängende Puffer zuordnen muss, wenn jeder Puffer an einer Adressausrichtungsgrenze beginnen muss.

Wenn der Wert eines eingabeparameters zu groß ist, führt der arithmetische Überlauf dazu, dass WDF_ALIGN_SIZE_UP einen ungültigen Wert zurückgibt, der kleiner als Length ist. Ihr Code sollte auf diese Bedingung testen.

Beispiele

Das folgende Codebeispiel empfängt eine Puffergröße und gibt die Größe (entweder die aktuelle Größe oder die nächsthöhere Größe) zurück, die an einer DWORD-Adressgrenze ausgerichtet ist.

bufferSizeAligned = WDF_ALIGN_SIZE_UP(bufferSize,
                                      sizeof(DWORD));
if (bufferSizeAligned < bufferSize)
{
    // Buffer too large.
    ...
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfcore.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL Beliebige IRQL.

Weitere Informationen

WDF_ALIGN_SIZE_DOWN