vm_write 内核服务
用途
对地址空间中的页面范围启动页面出页。
语法
描述
对于与地址范围 (Vaddr), vaddr + nbytes相交的页面, vm_write 内核服务会启动页面调出。
如果 力 参数为非零值,那么修改后的页将写入磁盘,而不考虑最近写入的时间。
针对每个已修改的页面启动页面输出。 未更改的页保留在内存中,其引用位设置为 0。 这使未更改的页面成为页面替换算法的候选项。
调用者必须具有对指定页面的写访问权。
启动的 I/O 是异步的。 可以调用 vms_iowait 内核服务,以等待 I/O 完成。
注: 不支持在大页上使用 vm_write 子例程。
参数
| 项 | 描述 |
|---|---|
| 沃德尔 | 指定页面范围的第一个字节的地址,需要该字节的页面出页。 |
| nbytes | 指定从由 沃德尔 参数指定的字节开始的字节数。 此参数必须为非负。 所有字节都必须在同一个虚拟内存对象中。 |
| force | 指定一个标志,该标志指示将写入修改后的页面,而不考虑上次写入该页面的时间。 |
执行环境
仅可从 流程环境 调用 vm_write 内核服务。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示成功完成。 |
| EINVAL | 指示以下四个错误之一:
|
| EACCES | 指示访问权不允许写入。 |
| EIO | 指示永久性 I/O 错误。 |