Microsoft SQL Server Virtual Backup Device Specification
Server Transitions
These tables display the full set of server transitions. The tables include the functions associated with the IServerVirtualDevice and the IServerVirtualDeviceSet2, the possible states when the functions can be invoked, and the status code to be expected when a function is invoked. 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 |
---|---|---|---|
Open | NOERROR->Connected | VD_E_PROTOCOL | VD_E_PROTOCOL |
GetConfiguration | VD_E_PROTOCOL | NOERROR | NOERROR |
BeginConfiguration | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_PROTOCOL |
RequestBuffers | VD_E_PROTOCOL | NOERROR | NOERROR |
QueryAvailableBuffers | VD_E_PROTOCOL | NOERROR | NOERROR |
EndConfiguration | VD_E_PROTOCOL | NOERROR->Initialize | VD_E_PROTOCOL |
OpenDevice | VD_E_PROTOCOL | VD_E_PROTOCOL | NOERROR —> Active |
ExecuteCompletionAgent | VD_E_PROTOCOL | VD_E_PROTOCOL | NOERROR —> Active |
AllocateBuffer | VD_E_PROTOCOL | VD_E_PROTOCOL | NOERROR |
FreeBuffer | VD_E_PROTOCOL | VD_E_PROTOCOL | NOERROR |
SendCommand | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_PROTOCOL |
CloseDevice | 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 | Abnormally Terminated State |
---|---|---|---|
Open | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_PROTOCOL |
GetConfiguration | NOERROR | NOERROR | VD_E_ABORT |
BeginConfiguration | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_PROTOCOL |
RequestBuffers | NOERROR | VD_E_PROTOCOL | VD_E_PROTOCOL |
QueryAvailableBuffers | NOERROR | VD_E_PROTOCOL | VD_E_PROTOCOL |
EndConfiguration | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_PROTOCOL |
OpenDevice | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_ABORT |
ExecuteCompletionAgent | VD_E_PROTOCOL | VD_E_PROTOCOL | VD_E_ABORT |
AllocateBuffer | NOERROR | NOERROR | VD_E_ABORT |
FreeBuffer | NOERROR | NOERROR | VD_E_ABORT |
SendCommand | NOERROR | VD_E_PROTOCOL | VD_E_ABORT |
CloseDevice | NOERROR —> Terminated | NOERROR | VD_E_ABORT |
SignalAbort | NOERROR —> Abort | NOERROR —> Abort | NOERROR |
Close | NOERROR —> DNE | NOERROR —> DNE | NOERROR —> DNE |
Functions | Connected State |
---|---|
Open | VD_E_PROTOCOL |
GetConfiguration | NOERROR |
BeginConfiguration | NOERROR->Configurable |
RequestBuffers | VD_E_PROTOCOL |
QueryAvailableBuffers | VD_E_PROTOCOL |
EndConfiguration | VD_E_PROTOCOL |
OpenDevice | VD_E_PROTOCOL |
ExecuteCompletionAgent | VD_E_PROTOCOL |
AllocateBuffer | VD_E_PROTOCOL |
FreeBuffer | NOERROR |
SendCommand | NOERROR |
CloseDevice | NOERROR —> Terminated |
SignalAbort | NOERROR —> Abort |
Close | NOERROR —> DNE |