Función KsReadFile (ks.h)
La función KsReadFile realiza una lectura en el objeto de archivo especificado. Se supone que el autor de la llamada serializa el acceso al archivo para las operaciones en un objeto de archivo FO_SYNCHRONOUS_IO. La función intenta usar FastIoDispatch si es posible, o genera una solicitud de lectura en el objeto de dispositivo. Se actualizan todas las estadísticas pertinentes.
Sintaxis
KSDDKAPI NTSTATUS KsReadFile(
[in] PFILE_OBJECT FileObject,
[in, optional] PKEVENT Event,
[in, optional] PVOID PortContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID Buffer,
[in] ULONG Length,
[in, optional] ULONG Key,
[in] KPROCESSOR_MODE RequestorMode
);
Parámetros
[in] FileObject
Especifica el objeto de archivo con el que se va a realizar la lectura.
[in, optional] Event
Opcionalmente, contiene el evento que se va a usar en la lectura. Si no se pasa ningún evento, se supone que la llamada está en un objeto de archivo sincrónico. Si no es así, el autor de la llamada está esperando el evento del objeto de archivo o se puede completar de forma asincrónica. Si el archivo se ha abierto para E/S sincrónica, debe ser NULL. Si se usa la variable, debe ser un evento asignado por el administrador de objetos.
[in, optional] PortContext
Opcionalmente, contiene información de contexto para un puerto de finalización.
[out] IoStatusBlock
Especifica la dirección donde se va a devolver la información de estado. Siempre se supone que es una dirección válida, independientemente del modo del solicitante.
[out] Buffer
Especifica el búfer en el que se van a colocar los datos leídos. Si es necesario sondear y bloquear el búfer, se usa un controlador de excepciones, junto con RequesterMode.
[in] Length
Especifica el tamaño del búfer pasado.
[in, optional] Key
Opcionalmente, contiene una clave o cero si no hay ninguna.
[in] RequestorMode
Indica el modo de procesador que se va a colocar en el IRP de lectura si es necesario generar uno. Además, se usa si es necesario sondear y bloquear el búfer. Esta variable también determina si se puede realizar una llamada de E/S rápida. Si el modo del solicitante no es KernelMode, pero el modo anterior era, no se puede usar la E/S rápida.
Valor devuelto
La función KsReadFile devuelve STATUS_SUCCESS si se ejecuta correctamente, STATUS_PENDING si la acción está pendiente o devuelve un error de lectura si no se realiza correctamente.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ks.h (incluya Ks.h) |
Library | Ks.lib |