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 |