Hvsock.Af_hyperv
Low-level interface to the AF_HYPERV socket family available on Windows kernels.
type vmid =
| Wildcard | (* Any partition *) |
| Children | (* Any child partition *) |
| Loopback | (* The same partition *) |
| Parent | (* The parent partition *) |
| Id of Uuidm.t | (* A specific VM id *) |
A vmid identifies a VM, also known as a partition
val string_of_vmid : vmid -> string
type sockaddr = {
vmid : vmid; | (* identifies a partition *) |
serviceid : serviceid; | (* identifies a service *) |
}
An AF_HVSOCK socket address
include Af_common.S with type sockaddr := sockaddr and type t = Unix.file_descr
val string_of_sockaddr : sockaddr -> string
val create : unit -> t
create ()
creates an unbound socket
val listen : t -> int -> unit
listen socket queue_length
sets the socket to listening mode with the given maximum queue length
connect ?timeout_ms fd sockaddr
connects to a remote socket. On Windows the raw connect call can block forever if the server is not running when the call is executed (even if the server starts up afterwards) there is a default timeout of 300ms. On timeout this will raise Unix_error(Unix.ETIMEDOUT)
val writev : t -> Cstruct.t list -> int
Write a list of buffers
val read_into : t -> Cstruct.t -> int
Read into a buffer, returning the number of bytes written
val shutdown_read : t -> unit
Close the read half of the connection
val shutdown_write : t -> unit
Close the write half of the connection
val close : t -> unit
Close both halves of the connection
Look up a vmid given a VM's human-readable name. This function requires Administrator privileges.