KsWriteFile 函数 (ks.h)
KsWriteFile 函数对指定的文件对象执行写入作。 假定调用方正在序列化对文件的访问权限,以便针对FO_SYNCHRONOUS_IO文件对象执行作。 函数尝试尽可能使用 FastIoDispatch,或者针对设备对象生成写入请求。 所有相关统计信息都会更新。
语法
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
);
参数
[in] FileObject
指定要对其执行读取作的文件对象。
[in, optional] Event
(可选)包含要用于写入的事件。 如果未传递任何事件,则假定调用位于同步文件对象上,或者调用方正在等待文件对象的事件。 如果调用不在同步文件对象上,则可以异步完成。 如果文件已为同步 I/O 打开,则必须 NULL。 如果使用此变量,则它必须是对象管理器分配的事件。
[in, optional] PortContext
(可选)包含完成端口的上下文信息。
[out] IoStatusBlock
指示返回状态信息的位置。 无论请求者模式如何,始终假定这是有效的地址。
[in] Buffer
指定要从中写入数据的缓冲区。 如果需要探测和锁定缓冲区,则使用异常处理程序以及 RequesterMode。
[in] Length
指定传递的缓冲区的大小。
[in, optional] Key
(可选)包含一个键;如果没有,则为零。
[in] RequestorMode
指示在需要生成处理器模式时放置在读取 IRP 中。 此外,如果需要探测和锁定缓冲区,则使用它。 此变量还确定是否可以执行快速 I/O 调用。 如果请求者模式不是 KernelMode,但以前的模式是,则无法使用快速 I/O。
返回值
KsWriteFile 函数在成功时返回STATUS_SUCCESS,STATUS_PENDING 如果作挂起,则返回读取错误(如果失败)。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |