Skip to content
Open
Show file tree
Hide file tree
Changes from 8 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 @@ -10635,6 +10635,7 @@ dependencies = [
"tempfile",
"test_with_tracing",
"thiserror 2.0.16",
"tracelimit",
"tracing",
"virtio",
"virtio_resources",
Expand Down Expand Up @@ -11386,6 +11387,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 @@ -84,6 +84,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 @@ -246,3 +259,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 @@ -1920,6 +1920,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