Condividi tramite


Funzione WideStringLengthFromUser (usermode_accessors.h)

The WideStringLengthFromUser function safely calculates the length of a null-terminated wide character string in user-mode memory.

Syntax

SIZE_T WideStringLengthFromUser(
  const WCHAR *String
);

Parameters

String

[in] Puntatore a una stringa di caratteri wide con terminazione Null nella memoria in modalità utente.

Return value

La funzione restituisce la lunghezza della stringa in caratteri wide, senza includere il carattere Null di terminazione.

Remarks

Questa funzione fornisce accesso sicuro per calcolare la lunghezza di una stringa di caratteri wide con terminazione Null che si trova nella memoria in modalità utente. È progettato per l'uso da parte del codice in modalità kernel che deve determinare la lunghezza delle stringhe di caratteri wide passate dalle applicazioni in modalità utente.

La funzione garantisce che l'indirizzo della stringa sia un indirizzo in modalità utente valido prima di eseguire il calcolo della lunghezza. Genera un'eccezione strutturata se l'operazione ha esito negativo, ad esempio quando l'indirizzo della stringa non è un indirizzo in modalità utente valido o non è accessibile.

A differenza delle funzioni stringa standard, questa funzione include la convalida per evitare arresti anomali del kernel durante l'accesso a puntatori in modalità utente potenzialmente non validi. In questo modo è essenziale per la programmazione sicura del kernel durante l'elaborazione di dati di stringhe di caratteri wide in modalità utente.

Questa funzione funziona su tutte le versioni di Windows, non solo sulla versione più recente. You need to consume the latest WDK to get the function declaration from the usermode_accessors.h header. You also need the library (umaccess.lib) from the latest WDK. Tuttavia, il driver risultante verrà eseguito correttamente nelle versioni precedenti di Windows.

Requirements

Requirement Value
Client minimo supportato See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Minore o uguale a APC_LEVEL

See also

WideStringLengthFromMode

StringLengthFromUser