Client Transitions
These tables display the full set of client transitions. They also list the functions associated with the IClientVirtualDevice and the IClientVirtualDeviceSet2, the possible states when the functions can be invoked, and the status code to be expected when a function is invoked. A list of status codes and their descriptions follows the Client Transitions tables. If the invocation of the function results in a state change, then the next state is given, identified by the symbol —>. When all resources are released, the VDI no longer exists and a transition to the Does Not Exist (DNE) state occurs.
Functions |
Does Not Exist State |
Configurable State |
Initializing State |
Create,CreateEx |
NOERROR —> Configurable |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
GetConfiguration |
VD_E_PROTOCOL |
NOERROR-> Initializing |
NOERROR |
OpenDevice |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
NOERROR ® Active |
GetCommand |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
CompleteCommand |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
SignalAbort |
VD_E_PROTOCOL |
NOERROR —> Abort |
NOERROR —> Abort |
Close |
VD_E_PROTOCOL |
NOERROR —> DNE |
NOERROR —> DNE |
Functions |
Active State |
Normally Terminated State |
Abort State |
Create |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
GetConfiguration |
NOERROR |
NOERROR |
VD_E_ABORT |
OpenDevice |
VD_E_PROTOCOL |
VD_E_PROTOCOL |
VD_E_ABORT |
GetCommand |
NOERROR or
VD_E_CLOSE -> NormallyTerminated
|
VD_E_PROTOCOL |
VD_E_ABORT |
CompleteCommand |
NOERROR |
VD_E_PROTOCOL |
VD_E_ABORT |
SignalAbort |
NOERROR —> Abort |
NOERROR —> Abort |
NOERROR |
Close |
NOERROR —> DNE |
NOERROR —> DNE |
NOERROR —> DNE |
Status Code |
Description |
NOERROR |
The function succeeded. |
VD_E_PROTOCOL |
A protocol error has occurred. The function cannot be called in this state. |
VD_E_ABORT |
The VDI is in the Abort state. Only Close is useful while in the Abort state. |
VD_E_CLOSE |
When the server issues a CloseDevice call, the client will receive a VD_E_CLOSE code from GetCommand. When the last device in the set returns a VD_E_CLOSE, the virtual device set enters the NormallyTerminated state. |