| |
 |
The
SQL Server Virtual Device Interface (VDI) is implemented as a set
of COM interfaces. This means that there can only be one VDI
library in use, even though you may have different versions of SQL
Server installed. The COM interfaces are located in a file named
sqlvdi.dll.
To find out which version of the VDI is active, do a search in the
registry under the HKEY_CLASSES_ROOT node, for the key
{40700425-0080-11d2-851f-00c04fc21759}. Under that node, you should
see a InprocServer32 value. The default data for that value points
to the version of sqlvdi.dll that's registered on that server.

Some common versions of sqlvdi.dll are as follows:
Generally,
later versions of SQL Server is backwards compatible with earlier
versions of SQL Server. This means that if you have both SQL Server
2000 and SQL Server 2005 instances running on your server, you must
ensure that the version of sqlvdi.dll that's registered is version
2000.085... or later, otherwise backup applications that use the
VDI will fail when trying to back up or restore on the SQL Server
2005 instance (see here for some
errors that may be caused by this mismatch).
In addition, if you are running 64-bit versions of SQL Server, SQL
Server will register both 32-bit and 64-bit versions of sqlvdi.dll.
If your backup application is a 32-bit application, you'll need to
ensure that both the 32-bit and 64-bit registered VDI files are of
the same version. To locate the registered 32-bit version of
sqlvdi.dll in the registry, look under the
HKEY_CLASSES_ROOT\Wow6432 node.

Surprisingly, this is a common issue, usually happening when you
apply hotfix 935465 on a 64-bit server that has both SQL Server
2000 and SQL Server 2005 instances installed. Hotfix 935465 does
not have a 64-bit version of sqlvdi.dll, hence causing a mismatch
of versions. To fix this, the suggestion is to apply hotfix
934396.
Discuss or comment on this article on our Facebook group.
Document history
| 12/19/2008 | Initial release. |
|