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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per