Función KsWriteFile (ks.h)

La función KsWriteFile realiza una escritura en el objeto de archivo especificado. Se supone que el autor de la llamada está serializando 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 escritura en el objeto de dispositivo. Se actualizan todas las estadísticas pertinentes.

Sintaxis

KSDDKAPI NTSTATUS KsWriteFile(
  [in]           PFILE_OBJECT     FileObject,
  [in, optional] PKEVENT          Event,
  [in, optional] PVOID            PortContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [in]           PVOID            Buffer,
  [in]           ULONG            Length,
  [in, optional] ULONG            Key,
  [in]           KPROCESSOR_MODE  RequestorMode
);

Parámetros

[in] FileObject

Especifica el objeto de archivo en el que se va a realizar la lectura.

[in, optional] Event

Opcionalmente, contiene el evento que se va a usar en la escritura. Si no se pasa ningún evento, se supone que la llamada está en un objeto de archivo sincrónico o el autor de la llamada está esperando el evento del objeto de archivo. Si la llamada no está en un objeto de archivo sincrónico, se puede completar de forma asincrónica. Si el archivo se ha abierto para E/S sincrónica, esta variable debe ser NULL. Si se usa esta 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

Indica la ubicación en la que se va a devolver la información de estado. Siempre se supone que es una dirección válida, independientemente del modo del solicitante.

[in] Buffer

Especifica el búfer desde el que se van a escribir los datos. 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 existe.

[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 un búfer. Esta variable también determina si se puede realizar una llamada de E/S rápida. Si el modo de solicitante no es KernelMode, pero el modo anterior era, no se puede usar E/S rápida.

Valor devuelto

La función KsWriteFile 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 (incluye Ks.h)
Library Ks.lib