Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

typedef DECLCALLBACK ( void   ) 

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Generic function type.
See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Generic function type.
See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Function that is called after message processing by worker thread, or if an error occured during message handling after successfully posting (hgcmMsgPost) the message to worker thread.

Parameters:
result Return code either from the service which actually processed the message or from HGCM.
pMsgCore Pointer to just processed message.
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.

Destruct a mouse driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Notification about a unit which have been changed.

The driver must discard any pointers to data owned by the unit and requery it.

Parameters:
pInterface Pointer to the interface structure containing the called function pointer.
iLUN The unit number.
Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.

Generic function type.

See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Function that is called after message processing by worker thread, or if an error occured during message handling after successfully posting (hgcmMsgPost) the message to worker thread.

Parameters:
result Return code either from the service which actually processed the message or from HGCM.
pMsgCore Pointer to just processed message.
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.

Destruct a mouse driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Notification about a unit which have been changed.

The driver must discard any pointers to data owned by the unit and requery it.

Parameters:
pInterface Pointer to the interface structure containing the called function pointer.
iLUN The unit number.
Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.

Handle display update.

See also:
PDMIDISPLAYCONNECTOR::pfnUpdateRect
Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Error message callback.

Puts the reported error message to the mm.vdError field.

Note:
Doesn't do any object locking; it is assumed that the caller makes sure the callback isn't called by more than one thread at a time.
Parameters:
pvUser The opaque data passed on container creation.
rc The VBox error code.
RT_SRC_POS_DECL Use RT_SRC_POS.
pszFormat Error message format string.
va Error message arguments.
Generic function type.
See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Function that is called after message processing by worker thread, or if an error occured during message handling after successfully posting (hgcmMsgPost) the message to worker thread.

Parameters:
result Return code either from the service which actually processed the message or from HGCM.
pMsgCore Pointer to just processed message.
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.

Destruct a mouse driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Notification about a unit which have been changed.

The driver must discard any pointers to data owned by the unit and requery it.

Parameters:
pInterface Pointer to the interface structure containing the called function pointer.
iLUN The unit number.
Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.

Handle display update.

See also:
PDMIDISPLAYCONNECTOR::pfnUpdateRect
Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Error message callback.

Puts the reported error message to the mm.vdError field.

Note:
Doesn't do any object locking; it is assumed that the caller makes sure the callback isn't called by more than one thread at a time.
Parameters:
pvUser The opaque data passed on container creation.
rc The VBox error code.
RT_SRC_POS_DECL Use RT_SRC_POS.
pszFormat Error message format string.
va Error message arguments.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request or the VM is reset.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Generic function type.
See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Function that is called after message processing by worker thread, or if an error occured during message handling after successfully posting (hgcmMsgPost) the message to worker thread.

Parameters:
result Return code either from the service which actually processed the message or from HGCM.
pMsgCore Pointer to just processed message.
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.

Destruct a mouse driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Notification about a unit which have been changed.

The driver must discard any pointers to data owned by the unit and requery it.

Parameters:
pInterface Pointer to the interface structure containing the called function pointer.
iLUN The unit number.
Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.

Handle display update.

See also:
PDMIDISPLAYCONNECTOR::pfnUpdateRect
Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Error message callback.

Puts the reported error message to the mm.vdError field.

Note:
Doesn't do any object locking; it is assumed that the caller makes sure the callback isn't called by more than one thread at a time.
Parameters:
pvUser The opaque data passed on container creation.
rc The VBox error code.
RT_SRC_POS_DECL Use RT_SRC_POS.
pszFormat Error message format string.
va Error message arguments.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request or the VM is reset.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
MP callback

Parameters:
idCpu CPU id
pvUser1 The first user argument.
pvUser2 The second user argument.
Info callback for 'pgmhandlers'.

Parameters:
pHlp The output helpers.
pszArgs The arguments. phys or virt.
Generic function type.
See also:
PFNRT
Callback for deleting a left over object during RTHandleTableDestroy.

Parameters:
hHandleTable The handle table handle.
h The handle.
pvObj The object.
pvCtx The context argument if the handle table was created with the RTHANDLETABLE_FLAGS_CONTEXT set. Otherwise NULL.
pvUser The user context argument specified when creating the table.
Flush function.

Parameters:
pLogger Pointer to the logger instance which is to be flushed.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Power On notification.

Parameters:
pDrvIns The driver instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Power Off notification.

Parameters:
pDrvIns The driver instance data.
Detach notification.

This is called when a driver below it in the chain is detaching itself from it. The driver should adjust it's state to reflect this.

This is like ejecting a cdrom or floppy.

Parameters:
pDrvIns The driver instance.
Poller callback.

Parameters:
pDrvIns The driver instance.
Power On notification.

Parameters:
pSrvIns The service instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pSrvIns The service instance data.
Power Off notification.

Parameters:
pSrvIns The service instance data.
Detach notification.

This is called when a driver or device is detached from the service

Parameters:
pSrvIns The service instance data.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Destruct a driver instance.

Most VM resources are freed by the VM. This callback is provided so that any non-VM resources can be freed correctly.

Parameters:
pDrvIns The driver instance data.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.

Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
VM state callback function. Called by the VMM using its state machine states.

Primarily used to handle VM initiated power off, suspend and state saving, but also for doing termination completed work (VMSTATE_TERMINATE).

In general this function is called in the context of the EMT.

Todo:
machineState is set to VMSTATE_RUNNING before all devices have received power on events this can prematurely allow the main thread to enter the event loop
Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.
Timer callback function sync GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Timer callback function for async GIP mode.
Parameters:
pTimer The timer.
pvUser The device extension.
Multiprocessor event notification callback.

This is used to make sue that the GIP master gets passed on to another CPU.

Parameters:
enmEvent The event.
idCpu The cpu it applies to.
pvUser Pointer to the device extension.
Callback used by supdrvDetermineAsyncTSC to read the TSC on a CPU.

Parameters:
idCpu Ignored.
pvUser1 Where to put the TSC.
pvUser2 Ignored.

Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Helper function that's used by the assembly routines when something goes bust.

Parameters:
pData Pointer to the data structure.
u64NanoTS The calculated nano ts.
u64DeltaPrev The delta relative to the previously returned timestamp.
u64PrevNanoTS The previously returned timestamp (as it was read it).
Logger output.

Worker function passed to RTMpOnAll, RTMpOnOthers and RTMpOnSpecific that is to be called on the target cpus.

Parameters:
idCpu The identifier for the CPU the function is called on.
pvUser1 The 1st user argument.
pvUser2 The 2nd user argument.

Timer callback function.

The context this call is made in varies with different platforms and kernel / user mode IPRT.

In kernel mode a timer callback should not waste time, it shouldn't waste stack and it should be prepared that some APIs might not work correctly because of weird OS restrictions in this context that we haven't discovered and avoided yet. Please fix those APIs so they at least avoid panics and weird behaviour.

Parameters:
pTimer Timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Timer callback function for low res timers.

This is identfical to FNRTTIMER except for the first parameter, so see FNRTTIMER for details.

Parameters:
hTimerLR The low resolution timer handle.
pvUser User argument.
iTick The current timer tick. This is always 1 on the first callback after the timer was started. For omni timers this will be 1 when a cpu comes back online.
Ready / busy notification.

Parameters:
pBack Pointer to the backend structure supplied by the backend. The backend can use this to find it's instance data.
fReady Whether it's ready (true) or busy (false).
Info handler, device version.

Parameters:
pDevIns Device instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, driver version.

Parameters:
pDrvIns Driver instance which registered the info.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, internal version.

Parameters:
pVM The VM handle.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Info handler, external version.

Parameters:
pvUser User argument.
pHlp Callback functions for doing output.
pszArgs Argument string. Optional and specific to the handler.
Callback function for writing to the PCI configuration space.

Parameters:
pPciDev Pointer to PCI device. Use pPciDev->pDevIns to get the device instance.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Completion callback for devices.

Parameters:
pDevIns The device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for drivers.

Parameters:
pDrvIns The driver instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for USB devices.

Parameters:
pUsbIns The USB device instance.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument.
Completion callback for internal.

Parameters:
pVM Pointer to the shared VM structure.
pTask Pointer to the completion task. The task is at the time of the call setup to be resumed. So, the callback must call PDMR3AsyncCompletionSuspend or PDMR3AsyncCompletionDestroy if any other action is wanted upon return.
pvCtx Pointer to any additional, OS specific, completion context. TBD.
pvUser User argument for the task.
pvUser2 User argument for the template.
Device relocation callback.

When this callback is called the device instance data, and if the device have a GC component, is being relocated, or/and the selectors have been changed. The device must use the chance to perform the necessary pointer relocations and data updates.

Before the GC code is executed the first time, this function will be called with a 0 delta so GC pointer calculations can be one in one place.

Parameters:
pDevIns Pointer to the device instance.
offDelta The relocation delta relative to the old location.
Remarks:
A relocation CANNOT fail.
Power On notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Reset notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Suspend notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Resume notification.

Returns:
VBox status.
Parameters:
pDevIns The device instance data.
Power Off notification.

Parameters:
pDevIns The device instance data.
Detach notification.

This is called when a driver is detaching itself from a LUN of the device. The device should adjust it's state to reflect this.

This is like unplugging the network cable to use it for the laptop or something while the PC is still running.

Parameters:
pDevIns The device instance.
iLUN The logical unit which is being detached.
Device timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
Driver timer callback function.

Parameters:
pDrvIns Device instance of the device which registered the timer.
pTimer The timer handle.
Service timer callback function.

Parameters:
pSrvIns Service instance of the device which registered the timer.
pTimer The timer handle.
Internal timer callback function.

Parameters:
pVM The VM.
pTimer The timer handle.
pvUser User argument specified upon timer creation.
External timer callback function.

Parameters:
pvUser User argument as specified when the timer was created.
VM error callback function.

Parameters:
pVM The VM handle. Can be NULL if an error occurred before successfully creating a VM.
pvUser The user argument.
rc VBox status code.
RT_SRC_POS_DECL The source position arguments. See RT_SRC_POS and RT_SRC_POS_ARGS.
pszFormat Error message format string.
args Error message arguments.
VM runtime error callback function. See VMSetRuntimeError for the detailed description of parameters.

Parameters:
pVM The VM handle.
pvUser The user argument.
fFatal Whether it is a fatal error or not.
pszErrorID Error ID string.
pszFormat Error message format string.
args Error message arguments.
VM reset external callback.

Parameters:
pvUser User argument.
VM state callback function.

You are not allowed to call any function which changes the VM state from a state callback, except VMR3Destroy().

Parameters:
pVM The VM handle.
enmState The new state.
enmOldState The old state.
pvUser The user argument.
USB frame timer callback function.

Parameters:
pDevIns Device instance of the device which registered the timer.
pTimer The timer handle.
VUSB device reset completion callback function. This is called by the reset thread when the reset has been completed.

Parameters:
pDev Pointer to the virtual USB device core.
rc The VBox status code of the reset operation.
pvUser User specific argument.
The reset thread or EMT.

Callback function for writing to the PCI configuration space.

Parameters:
pDevIns Pointer to the device instance of the PCI bus.
iBus The bus number this device is on.
iDevice The number of the device on the bus.
Address The configuration space register address. [0..255]
u32Value The value that's being written. The number of bits actually used from this value is determined by the cb parameter.
cb The register size. [1,2,4]
Object destructor callback. This is called for reference counted objectes when the count reaches 0.

Parameters:
pvObj The object pointer.
pvUser1 The first user argument.
pvUser2 The second user argument.
Handle display update

Parameters:
pInterface VMDisplay connector.
x Left upper boundary x.
y Left upper boundary y.
cx Update rect width.
cy Update rect height.
Periodic display refresh callback.

Parameters:
pInterface VMDisplay connector.
Reset notification

Parameters:
pInterface Display connector.
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Function that is called after message processing by worker thread, or if an error occured during message handling after successfully posting (hgcmMsgPost) the message to worker thread.

Parameters:
result Return code either from the service which actually processed the message or from HGCM.
pMsgCore Pointer to just processed message.
HGCM worker thread function.

Parameters:
ThreadHandle Handle of the thread.
pvUser User specified thread parameter.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.

Destruct a mouse driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Notification about a unit which have been changed.

The driver must discard any pointers to data owned by the unit and requery it.

Parameters:
pInterface Pointer to the interface structure containing the called function pointer.
iLUN The unit number.
Destruct a status driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
Update the guest additions capabilities. This is called when the guest additions capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the mouse capabilities. This is called when the mouse capabilities change. The new capabilities are given and the connector should update its internal state.

Parameters:
pInterface Pointer to this interface.
newCapabilities New capabilities. The emulation thread.
Update the pointer shape or visibility.

This is called when the mouse pointer shape changes or pointer is hidden/displaying. The new shape is passed as a caller allocated buffer that will be freed after returning.

Parameters:
pInterface Pointer to this interface.
fVisible Whether the pointer is visible or not.
fAlpha Alpha channel information is present.
xHot Horizontal coordinate of the pointer hot spot.
yHot Vertical coordinate of the pointer hot spot.
width Pointer width in pixels.
height Pointer height in pixels.
pShape The shape buffer. If NULL, then only pointer visibility is being changed. The emulation thread.

Handle display update.

See also:
PDMIDISPLAYCONNECTOR::pfnUpdateRect
Periodic display refresh callback.

See also:
PDMIDISPLAYCONNECTOR::pfnRefresh
Reset notification

See also:
PDMIDISPLAYCONNECTOR::pfnReset
LFBModeChange notification

See also:
PDMIDISPLAYCONNECTOR::pfnLFBModeChange
Adapter information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessAdapterData
Display information change notification.

See also:
PDMIDISPLAYCONNECTOR::pfnProcessDisplayData
Destruct a display driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Error message callback.

Puts the reported error message to the mm.vdError field.

Note:
Doesn't do any object locking; it is assumed that the caller makes sure the callback isn't called by more than one thread at a time.
Parameters:
pvUser The opaque data passed on container creation.
rc The VBox error code.
RT_SRC_POS_DECL Use RT_SRC_POS.
pszFormat Error message format string.
va Error message arguments.
Destruct a keyboard driver instance.

Returns:
VBox status.
Parameters:
pDrvIns The driver instance data.
Report guest OS version. Called whenever the Additions issue a guest version report request or the VM is reset.

Parameters:
pInterface Pointer to this interface.
guestInfo Pointer to guest information structure The emulation thread.
MP callback

Parameters:
idCpu CPU id
pvUser1 The first user argument.
pvUser2 The second user argument.
Info callback for 'pgmhandlers'.

Parameters:
pHlp The output helpers.
pszArgs The arguments. phys or virt.
Callback function for relocating the core code belonging to a switcher.

Parameters:
pVM VM handle.
pSwitcher Pointer to the switcher structure.
R0PtrCode Pointer to the first code byte in the ring-0 mapping.
pu8CodeR3 Pointer to the first code byte in the ring-3 mapping.
GCPtrCode The GC address of the first code byte.
u32IDCode The address of the identity mapped code (first byte).
Relocator for the 32-Bit to 32-Bit world switcher.

Todo:
: If we got the callback then VM if definitely running. But a better method should be implemented.

Definition at line 1962 of file audio.c.

{
    LogFlow(("drvAUDIODestruct:\n"));

    audio_atexit ();
}


Generated by  Doxygen 1.6.0   Back to index