Laden von VDS
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]
So laden und initialisieren Sie VDS
Freigeben von Nicht-NULL-Schnittstellen.
Rufen Sie die Funktionen CoCreateInstance, CoCreateInstanceEx oder CoGetClassObject auf, um einen Zeiger auf das Dienstladeprogrammobjekt abzurufen.
CLSCTX_DISABLE_AAA können in diesem Aufruf nicht angegeben werden. Wenn CoInitializeSecurity aufgerufen wird, kann EOAC_DISABLE_AAA nicht im dwCapabilities-Parameter angegeben werden.
Rufen Sie die IVdsServiceLoader::LoadService-Methode auf, um VDS zu laden.
Das Übergeben von NULL als erster Parameter lädt und initialisiert VDS auf dem lokalen Host.
Rufen Sie die IVdsService::WaitForServiceReady-Methode auf, um auf den Abschluss der VDS-Initialisierung zu warten.
Im folgenden Codebeispiel wird der Dienst initialisiert, der einen Zeiger auf das Dienstobjekt zurückgibt.
#include "initguid.h"
#include "vds.h"
#include <stdio.h>
#pragma comment( lib, "ole32.lib" )
//
// Simple macro to release non-null interfaces.
//
#define _SafeRelease(x) {if (NULL != x) { x->Release(); x = NULL; } }
void __cdecl main(void)
{
HRESULT hResult;
IVdsService *pService = NULL;
IVdsServiceLoader *pLoader = NULL;
// For this, you first get a pointer to the VDS Loader
// Launch the VDS service.
//
hResult = CoInitialize(NULL);
if (SUCCEEDED(hResult))
{
hResult = CoCreateInstance(CLSID_VdsLoader,
NULL,
CLSCTX_LOCAL_SERVER,
IID_IVdsServiceLoader,
(void **) &pLoader);
//
// And then load VDS on the local computer.
//
if (SUCCEEDED(hResult))
{
hResult = pLoader->LoadService(NULL, &pService);
}
//
// You're done with the Loader interface at this point.
//
_SafeRelease(pLoader);
if (SUCCEEDED(hResult))
{
hResult = pService->WaitForServiceReady();
if (SUCCEEDED(hResult))
{
//
// You obtained an interface to the service: pService.
// This interface can now be used to query for providers
// and perform other operations.
//
printf("VDS Service Loaded");
}
}
else
{
printf("VDS Service failed hr=%x\n",hResult);
}
}
}