VSS Hardware provider

2019-08-07 09:58发布

问题:

I've been trying to follow the instructions to install the example VSS hardware provider that comes with the Windows SDK. Unfortunately COM refuses to register the DLL, giving the following output:

Unregistering the existing application...
- Create the catalog object
- Get the Applications collection
- Populate...
- Search for VssSampleProvider application...
- Saving changes...
Done.
Creating a new COM+ application:
- Creating the catalog object
- Get the Applications collection
- Populate...
- Add new application object
- Set app name = VssSampleProvider
- Set app description = VSS HW Sample Provider
- Set app access check = true
- Set encrypted COM communication = true
- Set secure references = true
- Set impersonation = false
- Save changes...
- Create Windows service running as Local System
- Add the DLL component

ERROR:
- Error code: -2146368511 [0x80110401]
- Exit code: 113
- Description:
- Source:
- Help file:
- Help context: 0
- COM+ Errors detected: (2)
* (COM+ ERROR 0) on C:\VssSampleProvider\VssSampleProvider.dll
ErrorCode: -2146368486 [0x8011041A]
MajorRef: C:\VssSampleProvider\VssSampleProvider.dll
MinorRef: invalid
* (COM+ ERROR 1) on SampleProvider
ErrorCode: -2146368486 [0x8011041A]
MajorRef: {423BBC78-9B20-4BBE-A967-B63EC43BC7F3}
MinorRef: invalid

This is the same problem described in this thread:

http://www.osronline.com/showthread.cfm?link=185213

I've tried using both x86 and x64 machines, but it makes no difference. Any hints or suggestions would be most welcome.

回答1:

This requires msvcr110.dll and msvcp110.dll. These files comes with 'Visual C++ Redistributable Packages'. You can get latest 'Visual C++ Redistributable Packages' at following link. http://www.microsoft.com/en-in/download/details.aspx?id=40784



回答2:

I managed to solve this issue in the end. It turns out you can only install hardware providers on windows server distributions, I was using ordinary Windows 7. See the MSDN page for the API call:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa381923(v=vs.85).aspx

Compiling for 64 bit and using the 64 bit tools with the SDK on a windows server 2012 machine it seems to work correctly.