Función IoCheckEaBufferValidity (ntifs.h)
La rutina IoCheckEaBufferValidity comprueba si el búfer de atributo extendido (EA) especificado es válido.
Sintaxis
NTSTATUS IoCheckEaBufferValidity(
[in] PFILE_FULL_EA_INFORMATION EaBuffer,
[in] ULONG EaLength,
[out] PULONG ErrorOffset
);
Parámetros
[in] EaBuffer
Puntero al búfer que contiene las entidades de certificación que se van a comprobar.
[in] EaLength
Longitud, en bytes, de EaBuffer.
[out] ErrorOffset
Puntero a una variable que recibe el desplazamiento de la entrada incorrecta en el búfer de EA si se encuentra un error. Esta variable solo es válida si se produce un error.
Valor devuelto
IoCheckEaBufferValidity devuelve STATUS_SUCCESS si el búfer de EA es válido; de lo contrario, devuelve STATUS_EA_LIST_INCONSISTENT.
Comentarios
IoCheckEaBufferValidity comprueba cada entrada FILE_FULL_EA_INFORMATION en el búfer de EA especificado para asegurarse de que se cumplen las condiciones siguientes:
Toda la entrada debe estar dentro del búfer.
El valor de EaName debe ser una matriz de caracteres terminada en null.
El valor de EaNameLength debe coincidir con la longitud en bytes de la matriz EaName (no incluido el terminador cero).
Para todas las entradas excepto la última, el valor de NextEntryOffset debe ser mayor que cero y debe estar en un límite de ULONG.
Además, IoCheckEaBufferValidity comprueba el búfer de EA para asegurarse de que se cumplen las condiciones siguientes:
La longitud pasada en EaLength coincide con la longitud real del búfer.
La longitud real del búfer no es negativo.
Para ser válido, el búfer de EA debe cumplir todas estas condiciones.
IoCheckEaBufferValidity no realiza ninguna sincronización para asegurarse de que el contenido de EaBuffer no cambie de forma asincrónica. Si una aplicación en modo de usuario puede acceder al búfer en otro subproceso, la aplicación podría cambiar el búfer mientras se ejecuta IoCheckEaBufferValidity . Este cambio puede hacer que la rutina devuelva información incorrecta. Para evitar este escenario, el controlador debe copiar el búfer antes de llamar a IoCheckEaBufferValidity. Una vez validado el búfer, el autor de la llamada debe usar solo la copia validada, no el búfer original.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |