Funzione IoCheckEaBuffer Validità (ntifs.h)
La routine IoCheckEaBuffer Validità verifica se il buffer dell'attributo esteso specificato (EA) è valido.
Sintassi
NTSTATUS IoCheckEaBufferValidity(
[in] PFILE_FULL_EA_INFORMATION EaBuffer,
[in] ULONG EaLength,
[out] PULONG ErrorOffset
);
Parametri
[in] EaBuffer
Puntatore al buffer contenente gli EAs da controllare.
[in] EaLength
Lunghezza, in byte, di EaBuffer.
[out] ErrorOffset
Puntatore a una variabile che riceve l'offset della voce offensiva nel buffer EA se viene trovato un errore. Questa variabile è valida solo se si verifica un errore.
Valore restituito
IoCheckEaBuffer Validità restituisce STATUS_SUCCESS se il buffer EA è valido; in caso contrario, restituisce STATUS_EA_LIST_INCONSISTENT.
Commenti
IoCheckEaBuffer Validità controlla ogni FILE_FULL_EA_INFORMATION voce nel buffer EA specificato per assicurarsi che vengano soddisfatte le condizioni seguenti:
L'intera voce deve rientrare nel buffer.
Il valore di EaName deve essere una matrice di caratteri con terminazione null.
Il valore di EaNameLength deve corrispondere alla lunghezza in byte della matrice EaName (non incluso il terminatore zero).
Per tutte le voci tranne l'ultimo, il valore di NextEntryOffset deve essere maggiore di zero e deve cadere su un limite ULONG.
Inoltre, IoCheckEaBuffer Validità controlla il buffer EA per assicurarsi che vengano soddisfatte le condizioni seguenti:
La lunghezza passata in EaLength corrisponde alla lunghezza effettiva del buffer.
La lunghezza effettiva del buffer non è effettiva.
Per essere valido, il buffer EA deve soddisfare tutte queste condizioni.
IoCheckEaBuffer Validità non esegue alcuna sincronizzazione per assicurarsi che il contenuto di EaBuffer non cambi in modo asincrono. Se un'applicazione in modalità utente può accedere al buffer in un altro thread, l'applicazione potrebbe modificare il buffer durante l'esecuzione di IoCheckEaBuffer Validità . Questa modifica potrebbe causare la restituzione di informazioni non corrette dalla routine. Per evitare questo scenario, il driver deve copiare il buffer prima di chiamare IoCheckEaBuffer Validità. Dopo aver convalidato il buffer, il chiamante deve usare solo la copia convalidata, non il buffer originale.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |