Windows Dev Center

Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Loading VDS

[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]

Aa383037.wedge(en-us,VS.85).gifTo load and initialize VDS

  1. Release non-null interfaces.
  2. Call the CoCreateInstance, CoCreateInstanceEx, or CoGetClassObject function to obtain a pointer to the service loader object.

    CLSCTX_DISABLE_AAA cannot be specified in this call. If CoInitializeSecurity is called, EOAC_DISABLE_AAA cannot be specified in the dwCapabilities parameter.

  3. Call the IVdsServiceLoader::LoadService method to load VDS.

    Passing NULL as the first parameter loads and initializes VDS on the local host.

  4. Call the IVdsService::WaitForServiceReady method to wait for VDS initialization to complete.

The following code example initializes the service that returns a pointer to the service object.


#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);
        }
    }
}



Related topics

Using VDS
IVdsService::WaitForServiceReady
IVdsServiceLoader::LoadService
Setup and Service Objects

 

 

Community Additions

Show:
© 2015 Microsoft