Sdílet prostřednictvím


Objektový model VDS

[Počínaje Windows 8 a Windows Serverem 2012 se rozhraní Virtual Disk Service modelu COM nahrazuje rozhraním rozhraní API pro správu služby Windows Storage Management.]

VDS poskytuje nepřímý přístup k hostitelským úložným zařízením, jako jsou disky a zařízení CD-ROM, a k diskovým polím spravovaným hardwarovými řadiči RAID. Zatímco některé entity úložiště modelují fyzická zařízení, jiné modelují virtuální konstrukce: svazky, oddíly atd. Objekty popsané v tomto tématu představují fyzické i virtuální entity VDS.

Aplikace volají metody, které jsou vystaveny těmito objekty, a VDS volá příslušného poskytovatele k provedení požadovaných operací úložiště. Aplikace nikdy nevolá program poskytovatele přímo.

Klasifikace objektů

Jak ukazuje následující obrázek, programy poskytovatele softwaru implementují objekty, které modelují entity založené na hostiteli; programy poskytovatele hardwaru implementují objekty, které modelují interní a externí hardwarová zařízení RAID; zbývající běžné objekty jsou nezávislé na poskytovateli nebo jsou implementovány službou VDS. Disková jednotka, která není objektem VDS, je termínem pro obecná média úložiště, která se skládá z rozsahů disku nebo jednotky.

diagram, který zobrazuje klasifikaci objektů definovaných jako

Další informace o chování jednotlivých objektů najdete v následujících tématech:

Vytvoření objektu

Dokončení operací konfigurace a dotazů přidružených k vytvoření objektu může trvat poměrně dlouho; VDS proto asynchronně vyvolá všechny metody. Zprostředkovatel zjišťování vrátí všechny události změny stavu, dokončení, chyby nebo stavu. Poskytovatelé softwaru také protokoluje všechny chyby a významné změny stavu.

Odstranění objektu

Několik metod VDS odstraní nebo transformuje objekty VDS. Volající může po vrácení metody uchovávat odkaz na odstraněný objekt pomocí ukazatele rozhraní. Když volající uvolní rozhraní, VDS odstraní objekt.

Pokud jde o odstranění objektu, volající by se neměl vyvolat nic kromě metody IUnknown::Release v těchto rozhraních. Poskytovatel musí být dostatečně robustní pro řešení potíží s volajícími; Pokud volající vyvolá metodu u odstraněného objektu, měl by poskytovatel vrátit VDS_E_OBJECT_DELETED.

Inicializace služby

VDS poskytuje identifikátor třídy (Clsid) pro zavaděč služby a objekty služby, ale pouze zavaděč služby Clsid je veřejný. Inicializace služby nastane, když poskytovatelé, volající aplikace a služba provádějí následující úlohy:

  • Každý nový zprostředkovatel vyvolá metodu IVdsAdmin::RegisterProvider během instalace pro registraci ve VDS. Volání vytvoří klíč registru pod podregistrem SYSTEM identifikovaný identifikátorem GUID objektu poskytovatele. Pod tímto klíčem je Clsid objektu zprostředkovatele, název, verze a identifikátor GUID verze poskytovatele.

    Poznámka

    Identifikátory GUID objektů zprostředkovatele jsou trvalé; identifikátory GUID softwarových a hardwarových objektů nejsou.

     

  • Aplikace volá funkci CoCreateInstance, která jako argument předá zavaděč služby Clsid. S ukazatelem na objekt zavaděče služby může aplikace spustit VDS buď místně, nebo vzdáleně předáním požadovaného názvu počítače jako parametru do metody IVdsServiceLoader::LoadService metoda.

  • Když se počáteční aplikace připojí ke službě, VDS nejprve zavolá CoCreateInstance na každém Clsid nalezen pod klíčem registru a potom zavolá IVdsProviderPrivate::OnLoad metodu každého zprostředkovatele, aby inicializoval programy.

O službě VDS

IVdsAdmin::RegisterProvider

IVdsServiceLoader::LoadService

IVdsProviderPrivate::OnLoad