Função IoCheckEaBufferValidity (ntifs.h)
A rotina IoCheckEaBufferValidity verifica se o buffer de EA (atributo estendido) especificado é válido.
Sintaxe
NTSTATUS IoCheckEaBufferValidity(
[in] PFILE_FULL_EA_INFORMATION EaBuffer,
[in] ULONG EaLength,
[out] PULONG ErrorOffset
);
Parâmetros
[in] EaBuffer
Ponteiro para o buffer que contém os EAs a serem verificados.
[in] EaLength
Comprimento, em bytes, de EaBuffer.
[out] ErrorOffset
Ponteiro para uma variável que recebe o deslocamento da entrada ofensiva no buffer de EA se um erro for encontrado. Essa variável só será válida se ocorrer um erro.
Retornar valor
IoCheckEaBufferValidity retornará STATUS_SUCCESS se o buffer EA for válido; caso contrário, retornará STATUS_EA_LIST_INCONSISTENT.
Comentários
IoCheckEaBufferValidity verifica cada entrada de FILE_FULL_EA_INFORMATION no buffer EA especificado para garantir que as seguintes condições sejam atendidas:
Toda a entrada deve estar dentro do buffer.
O valor de EaName deve ser uma matriz de caracteres terminada em nulo.
O valor de EaNameLength deve corresponder ao comprimento em bytes da matriz EaName (sem incluir o terminador zero).
Para todas as entradas, exceto a última, o valor de NextEntryOffset deve ser maior que zero e deve cair em um limite ULONG.
Além disso, IoCheckEaBufferValidity verifica o buffer do EA para garantir que as seguintes condições sejam atendidas:
O comprimento passado em EaLength corresponde ao comprimento real do buffer.
O comprimento real do buffer não é negativo.
Para ser válido, o buffer do EA deve atender a todas essas condições.
IoCheckEaBufferValidity não executa nenhuma sincronização para garantir que o conteúdo do EaBuffer não seja alterado de forma assíncrona. Se um aplicativo de modo de usuário puder acessar o buffer em outro thread, o aplicativo poderá alterar o buffer enquanto IoCheckEaBufferValidity estiver em execução. Essa alteração pode fazer com que a rotina retorne informações incorretas. Para evitar esse cenário, o driver deve copiar o buffer antes de chamar IoCheckEaBufferValidity. Depois que o buffer for validado, o chamador deverá usar apenas a cópia validada, não o buffer original.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |