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