vmbuskernelmodeclientlibapi.h header

This header is used by netvista. For more information, see:

Functions

Title Description
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT The VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT function saves callback functions to be used for state changes for a channel.

Callback functions

Title Description
EVT_VMB_CHANNEL_CLOSED The EvtVmbChannelClosed callback function is invoked when the client endpoint in the guest virtual machine closes a channel by using the VmbChannelDisable function, or the opposite endpoint rescinds or closes the channel.
EVT_VMB_CHANNEL_OPENED The EvtVmbChannelOpened callback function is invoked when the client endpoint in the guest virtual machine opens a channel which has been offered to it.
EVT_VMB_CHANNEL_PNP_FAILURE The EvtChannelPnpFailure callback function is invoked if the client endpoint in the guest virtual machine asynchronously fails to connect even though a PnP device was located.
EVT_VMB_CHANNEL_POST_STARTED The EvtVmbChannelPostStarted callback function is invoked at either endpoint after packets can be received from the opposite endpoint.
EVT_VMB_CHANNEL_PROCESS_PACKET The EvtVmbChannelProcessPacket callback function is invoked when a packet arrives in the incoming ring buffer.
EVT_VMB_CHANNEL_PROCESSING_COMPLETE The EvtVmbChannelProcessingComplete callback function is invoked when a group of packets has been delivered by the EvtVmbChannelProcessPacket function, if there is a pause before delivering subsequent packets.
EVT_VMB_CHANNEL_RESTORE_PACKET The EvtVmbChannelRestorePacket callback function is invoked when the virtualization service provider (VSP) server endpoint must restore the state associated with a packet object.
EVT_VMB_CHANNEL_SAVE_PACKET The EvtVmbChannelSavePacket callback function is invoked when the virtualization service provider (VSP) endpoint must save the state associated with a packet.
EVT_VMB_CHANNEL_STARTED The EvtVmbChannelStarted callback function is invoked at either endpoint when a channel is fully configured but before any packets have been delivered. This occurs when the opposite endpoint opened the channel or reopened it after closing it.
EVT_VMB_CHANNEL_SUSPEND The EvtVmbChannelSuspend callback function is invoked at the server endpoint when the channel is being closed or deleted by the client endpoint, which moves the server into the Stopped state.
EVT_VMB_PACKET_COMPLETION_ROUTINE The EvtVmbPacketCompletionRoutine callback function is invoked when the transaction associated with a sent packet is complete.
FN_VMB_CHANNEL_ALLOCATE The VmbChannelAllocate function allocates a new VMBus channel that has default parameters and callbacks.
FN_VMB_CHANNEL_CLEANUP The VmbChannelCleanup function disposes of a channel that was allocated by using the VmbChannelAllocate function or initialized by using a VMBus channel initialization function.
FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER The VmbChannelCreateGpadlFromBuffer function creates a Guest Physical Address Descriptor List (GPADL) that describes a client-side buffer. The GPADL can be used in the server to access the buffer.
FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL The VmbChannelCreateGpadlFromMdl function creates a Guest Physical Address Descriptor List (GPADL) that describes a client-side buffer. The GPADL can be used in the server to access the buffer.
FN_VMB_CHANNEL_DELETE_GPADL The VmbChannelDeleteGpadl function deletes a Guest Physical Address Descriptor List (GPADL) mapped by the VmbChannelCreateGpadlFromMdl or VmbChannelCreateGpadlFromBuffer functions.
FN_VMB_CHANNEL_DISABLE The VmbChannelDisable function disables a channel, which closes it for client channels and revokes the channel offer for server channels. This function waits until the channel is completely torn down before it returns.
FN_VMB_CHANNEL_ENABLE The VmbChannelEnable function enables a channel that is in the disabled state by connecting to VMBus and offering or opening a channel, as appropriate for the endpoint type.
FN_VMB_CHANNEL_GET_INTERFACE_INSTANCE The VmbChannelGetInterfaceInstance function gets the active interface instance, which is a GUID that uniquely identifies a channel.
FN_VMB_CHANNEL_GET_MMIO_SPACE The VmbChannelGetMmioSpace function retrieves the kernel virtual address of the MMIO space allocated to a channel.
FN_VMB_CHANNEL_GET_POINTER The VmbChannelGetPointer function lets a client driver retrieve a pointer that was previously saved by using the VmbPacketSetPointer function.
FN_VMB_CHANNEL_INIT_SET_CLIENT_CONTEXT_SIZE The VmbChannelInitSetClientContextSize function sets the size of the optional context area allocated for the client driver on each incoming packet.
FN_VMB_CHANNEL_INIT_SET_FLAGS The VmbChannelInitSetFlags function sets flags common to server or client channel endpoints.
FN_VMB_CHANNEL_INIT_SET_FRIENDLY_NAME The VmbChannelInitSetFriendlyName function sets the friendly name of the Kernel Mode Client Library (KMCL) channel. The friendly name is used for debugging and performance counter instance naming.
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_EXTERNAL_DATA The VmbChannelInitSetMaximumExternalData function sets the maximum size and chain length of data that is described by a packet, but not directly sent in the packet. That is, the maximum size of the buffer described by an ExternalDataMdl.
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_PACKET_SIZE The VmbChannelInitSetMaximumPacketSize function sets the maximum packet size that can be delivered through a channel, which is the maximum size that will ever be specified by the VmbPacketSend function.
FN_VMB_CHANNEL_INIT_SET_PROCESS_PACKET_CALLBACKS The VmbChannelInitSetProcessPacketCallbacks function sets callback functions for packet processing.
FN_VMB_CHANNEL_INIT_SET_STATE_CHANGE_CALLBACKS The VmbChannelInitSetStateChangeCallbacks function sets optional callback functions for state changes.
FN_VMB_CHANNEL_MAP_GPADL The VmbChannelMapGpadl function maps a client-side buffer into server-side physical address space by using a Guest Physical Address Descriptor List (GPADL) number.
FN_VMB_CHANNEL_PACKET_COMPLETE The VmbChannelPacketComplete function cleans up any outstanding memory mappings, releases any buffers in use, and, if the opposite endpoint requested a completion packet, sends a completion packet.
FN_VMB_CHANNEL_PACKET_DEFER_TO_PASSIVE The VmbChannelPacketDeferToPassive function is called by the client driver to defer a packet passed to it by the EvtVmbChannelProcessPacket callback function.
FN_VMB_CHANNEL_PACKET_FAIL The VmbChannelPacketFail function fails a packet during packet processing due to an unrecoverable error. This function stops the queue.
FN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA The VmbChannelPacketGetExternalData function gets any external Memory Descriptor Lists (MDLs) associated with a packet during packet processing.
FN_VMB_CHANNEL_PAUSE The VmbChannelPause function moves a channel into the paused state, which prevents new I/O.
FN_VMB_CHANNEL_RESTORE_FROM_BUFFER The VmbChannelRestoreFromBuffer function restores the client state from previously saved state. The driver must check the return value of the function.
FN_VMB_CHANNEL_SAVE_BEGIN The VmbChannelSaveBegin function initializes the context for saving the state of a channel. The driver must check the return value of the function.
FN_VMB_CHANNEL_SAVE_CONTINUE The VmbChannelSaveContinue function saves the channel state to a buffer. Run the VmbChannelSaveBegin before you run this function. The driver must check the return value of the function.
FN_VMB_CHANNEL_SAVE_END The VmbChannelSaveEnd function cleans up any resources that were allocated for saving state of a channel.
FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST The VmbChannelSendSynchronousRequest function sends a packet to the opposite endpoint and waits for a response.
FN_VMB_CHANNEL_SET_INCOMING_PROCESSING_AT_PASSIVE The VmbChannelSetIncomingProcessingAtPassive function sets the required IRQL for incoming parsing routines for a channel to PASSIVE_LEVEL.
FN_VMB_CHANNEL_SET_INTERRUPT_LATENCY Guest VM updates to the outgoing monitor latency for MNF interrupts.
FN_VMB_CHANNEL_SET_POINTER The VmbChannelSetPointer function saves an arbitrary pointer in a channel context.
FN_VMB_CHANNEL_SET_TRANSACTION_QUOTA The VmbChannelSetTransactionQuota function sets the incoming packet quota.
FN_VMB_CHANNEL_SIZEOF_PACKET The VmbChannelSizeofPacket function calculates the necessary size for buffers to be used with the VmbPacketInitialize function.
FN_VMB_CHANNEL_START The VmbChannelStart function moves a channel out of the paused state.
FN_VMB_CHANNEL_UNMAP_GPADL The VmbChannelUnmapGpadl function unmaps a Guest Physical Address Descriptor List (GPADL) mapped using by the VmbChannelMapGpadl function. The buffer must no longer be in use by the server before this function is called.
FN_VMB_CLIENT_CHANNEL_INIT_SET_RING_BUFFER_PAGE_COUNT The VmbClientChannelInitSetRingBufferPageCount function sets the number of pages of memory the client allocates for incoming and outgoing ring buffers.
FN_VMB_CLIENT_CHANNEL_INIT_SET_TARGET_PNP The VmbClientChannelInitSetTargetPnp function sets a client channel's target by interface type and instance IDs.
FN_VMB_CONVERT_VMBUS_HANDLE_TO_KERNEL_HANDLE The VmbConvertVmbusHandleToKernelHandle function converts the user mode VMBus handle to kernel mode handle.
FN_VMB_PACKET_ALLOCATE The VmbPacketAllocate function allocates a packet from the channel's lookaside list.
FN_VMB_PACKET_FREE The VmbPacketFree function releases a packet allocated by using the VmbPacketAllocate function.
FN_VMB_PACKET_GET_CHANNEL The VmbPacketGetChannel function returns the VMBus channel with which a VMBus packet is associated.
FN_VMB_PACKET_GET_POINTER The VmbPacketGetPointer function retrieves a pointer that was previously saved by using the VmbPacketSetPointer function.
FN_VMB_PACKET_INITIALIZE The VmbPacketInitialize function initializes a buffer to contain a VMBus packet.
FN_VMB_PACKET_RESTORE The VmbPacketRestore function restores packet from a buffer that contains saved packet context.
FN_VMB_PACKET_SEND The VmbPacketSend function sends the data in a packet buffer or external data Memory Descriptor List (MDL). The function associates that data with the VMBus packet object, which represents the packet throughout the lifetime of the transaction.
FN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL The VmbPacketSendWithExternalMdl function sends the data in a packet buffer or external data Memory Descriptor List (MDL).
FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS The VmbPacketSendWithExternalPfns function sends the data in a packet buffer or external data as an array of Page Frame Numbers (PFNs).
FN_VMB_PACKET_SET_COMPLETION_ROUTINE The VmbPacketSetCompletionRoutine function sets the completion routine for a packet object.
FN_VMB_PACKET_SET_POINTER The VmbPacketSetPointer function saves an arbitrary pointer in the packet context.
FN_VMB_SERVER_CHANNEL_INIT_SET_FLAGS The VmbServerChannelInitSetFlags function sets flags unique to server channel endpoints.
FN_VMB_SERVER_CHANNEL_INIT_SET_MMIO_MEGABYTES The VmbServerChannelInitSetMmioMegabytes function specifies the amount, megabytes, of guest memory-mapped I/O (MMIO) space to reserve for the device.
FN_VMB_SERVER_CHANNEL_INIT_SET_SAVE_RESTORE_PACKET_CALLBACKS The VmbServerChannelInitSetSaveRestorePacketCallbacks function sets the save and restore callback functions that are called for each packet when the driver calls a save function, such as VmbChannelSaveBegin, VmbChannelSaveContinue, and VmbChannelSaveEnd, or the VmbChannelRestoreFromBuffer function.
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_INTERFACE_ID The VmbServerChannelInitSetTargetInterfaceId function sets the target interface type GUID and instance GUID of the channel offer.
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_VTL The VmbServerChannelInitSetTargetVtl function sets the target VTL for this channel. The channel will be offered to clients running in the specified VTL and no others.
FN_VMB_SERVER_CHANNEL_INIT_SET_VMBUS_HANDLE The VmbServerChannelInitSetVmbusHandle function associates an instance of VMBus with this channel.

Structures

Title Description
KMCL_CLIENT_INTERFACE_V1 The KMCL_CLIENT_INTERFACE_V1 structure contains function pointers for client functions for the VMBus Kernel Mode Client Library (KMCL) interface.
KMCL_SERVER_ONLY_METHODS The KMCL_SERVER_ONLY_METHODS structure contains function pointers for server-only functions for the VMBus Kernel Mode Client Library (KMCL) interface.
VMB_CHANNEL_STATE_CHANGE_CALLBACKS The VMB_CHANNEL_STATE_CHANGE_CALLBACKS structure contains callback functions that relate to the state changes for a channel.