Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10902,6 +10902,7 @@ dependencies = [
"tempfile",
"test_with_tracing",
"thiserror 2.0.16",
"tracelimit",
"tracing",
"virtio",
"virtio_resources",
Expand Down Expand Up @@ -11653,6 +11654,7 @@ dependencies = [
"vmgs_resources",
"vmm_test_igvm_agent",
"vmm_test_macros",
"windows-sys 0.61.0",
"x509-cert",
"x86defs",
"zerocopy",
Expand Down
14 changes: 14 additions & 0 deletions Guide/src/reference/openvmm/management/grpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,19 @@ If a write fails, OpenVMM logs the error and disconnects the file backend.
Further console output is discarded; the backend does not automatically retry
or reopen the file.

## Passing handles on Windows

Some API fields reference OS handles by name. For example,
`VirtioFs.WindowsOptions.user_token_name` names an access token that virtio-fs
impersonates for host file access.

Clients register these handles over the same socket using the
[resource-passing protocol]. Because Windows Unix sockets cannot carry handles,
the client duplicates each handle into the OpenVMM process with
`DuplicateHandle`, which requires `PROCESS_DUP_HANDLE` access to it, and sends
the handle value under a name. OpenVMM makes its own duplicate; the client then
closes its copy in OpenVMM.

## Graceful guest shutdown

`ShutdownVM` requests a cooperative guest power-off, non-forced by default.
Expand Down Expand Up @@ -270,3 +283,4 @@ When editing `vmservice.proto`, follow the
[Protocol Buffers enum conventions](../../../dev_guide/contrib/code.md#protocol-buffers-enums).

[`vmservice.proto`]: https://github.com/microsoft/openvmm/blob/main/openvmm/openvmm_ttrpc_vmservice/src/vmservice.proto
[resource-passing protocol]: https://github.com/microsoft/openvmm/blob/main/openvmm/openvmm_ttrpc_vmservice/src/resource_passing.md
1 change: 1 addition & 0 deletions openvmm/openvmm_entry/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ win_etw_tracing.workspace = true
workspace = true
features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Storage_FileSystem",
]

Expand Down
1 change: 1 addition & 0 deletions openvmm/openvmm_entry/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1915,6 +1915,7 @@ async fn vm_config_from_command_line(
fs: virtio_resources::fs::VirtioFsBackend::HostFs {
root_path: args.path.clone(),
mount_options: args.options.clone(),
windows_options: None,
},
}
.into_resource();
Expand Down
Loading
Loading