funzione WDF_ALIGN_SIZE_UP (wdfcore.h)

[Si applica a KMDF e UMDF]

La funzione WDF_ALIGN_SIZE_UP restituisce le dimensioni del buffer successive superiori allineate a un offset di allineamento specificato.

Sintassi

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

Parametri

[in] Length

Lunghezza, in byte, di un buffer di memoria.

[in] AlignTo

Offset di allineamento, in byte. Questo valore deve essere una potenza di 2, ad esempio 2, 4, 8, 16 e così via.

Valore restituito

WDF_ALIGN_SIZE_UP restituisce le dimensioni del buffer allineate, in byte.

Commenti

I driver possono usare WDF_ALIGN_SIZE_UP o WDF_ALIGN_SIZE_DOWN per calcolare una dimensione del buffer allineata a un offset di allineamento specificato. Questo calcolo è utile se il driver deve allocare più buffer contigui, se ogni buffer deve iniziare in corrispondenza di un limite di allineamento degli indirizzi.

Se il valore di uno dei due parametri di input è troppo grande, l'overflow aritmetico fa sì che WDF_ALIGN_SIZE_UP restituisca un valore non valido minore di Length. Il codice deve verificare questa condizione.

Esempio

L'esempio di codice seguente riceve una dimensione del buffer e restituisce le dimensioni (le dimensioni correnti o le dimensioni successive) allineate a un limite di indirizzi DWORD.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfcore.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL Qualsiasi IRQL.

Vedi anche

WDF_ALIGN_SIZE_DOWN