IVdsPack2::CreateVolume2-Methode (vds.h)
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API abgelöst.]
Erstellt ein Volume in einem Datenträgerpaket mit einem optionalen Ausrichtungsparameter.
Syntax
HRESULT CreateVolume2(
[in] VDS_VOLUME_TYPE type,
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[in] ULONG ulStripeSize,
[in] ULONG ulAlign,
[out] IVdsAsync **ppAsync
);
Parameter
[in] type
Wert aus der VDS_VOLUME_TYPE-Enumeration , der den Typ des zu erstellenden Volumes angibt.
[in] pInputDiskArray
Array von VDS_INPUT_DISK Strukturen, die die Datenträger angeben, auf denen das Volume erstellt werden soll.
[in] lNumberOfDisks
Anzahl der Elemente im Array, auf das der Parameter pInputDiskArray verweist.
[in] ulStripeSize
Stripegröße des neuen Volumes in Byte.
[in] ulAlign
Anzahl der Bytes für die Volumeausrichtung. Dieser Parameter ist optional und kann null sein. Wenn null angegeben wird, bestimmt der Server den Ausrichtungswert abhängig von der Größe des Datenträgers, auf dem das Volume erstellt wird.
Windows 7, Windows Server 2008 R2, Windows Vista und Windows Server 2008: Auf einem Basisdatenträger ignoriert die CreateVolume2-Methode diesen Parameter und den HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment Registrierungsschlüssel. Dies ist ein bekanntes Problem, das behoben wird. Verwenden Sie als Problemumgehung die IVdsAdvancedDisk::CreatePartition - oder IVdsCreatePartitionEx::CreatePartitionEx-Methode , um Partitionen auf dem Basisdatenträger so zu erstellen, dass sie ordnungsgemäß ausgerichtet sind. Dynamische Partitionen und Volumes werden mithilfe der Werte unter dem folgenden Registrierungsschlüssel ausgerichtet:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment
Die Standardausrichtung beträgt 1 MB, wenn der Datenträger 4 GB oder größer ist, oder 64 KB, wenn der Datenträger kleiner als 4 GB ist.
[out] ppAsync
Zeiger auf eine IVdsAsync-Schnittstelle , die nach erfolgreichem Abschluss die IVdsAsync-Schnittstelle empfängt, um diesen Vorgang zu überwachen und zu steuern. Aufrufer müssen die empfangene Schnittstelle freigeben, wenn sie damit fertig sind. Wenn die IVdsAsync::Wait-Methode für die Schnittstelle aufgerufen wird und ein erfolgreicher HRESULT-Wert zurückgegeben wird, müssen die in der VDS_ASYNC_OUTPUT-Struktur zurückgegebenen Schnittstellen durch Aufrufen der IUnknown::Release-Methode für jeden Schnittstellenzeiger freigegeben werden. Wenn Wait jedoch einen HRESULT-Fehlerwert zurückgibt oder der pHrResult-Parameter von Wait einen HRESULT-Fehlerwert empfängt, sind die Schnittstellenzeiger in der VDS_ASYNC_OUTPUT-StrukturNULL und müssen nicht freigegeben werden. Sie können HRESULT-Werte für Erfolg oder Fehler testen, indem Sie die in Winerror.h definierten Makros SUCCEEDED und FAILED verwenden.
Rückgabewert
Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des makros HRESULT_FROM_WIN32 zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Das Volume wurde erfolgreich erstellt. |
|
Es wurde keine Volume-Eingangsbenachrichtigung empfangen. Möglicherweise müssen Sie IVdsService::Refresh aufrufen. |
|
Das Volume wurde erfolgreich erstellt, aber VDS konnte die Startoptionen im BCD-Speicher (Boot Configuration Data) nicht aktualisieren. |
|
Die angegebene Ausrichtung ist null. |
|
Die angegebene Ausrichtung ist keine Potenz von zwei. |
|
Die angegebenen Datenträger gehören nicht zum gleichen Paket. |
|
Fehler beim LDM-Dienst bei einer Methode. |
|
Die übergebene Blöckegröße ist zu klein. |
|
Die angegebene Anzahl von Datenträgern ist für diesen Vorgang ungültig. |
|
Die Memberanzahl für das Volume muss größer als 0 sein. |
|
Die Memberindizes müssen monoton ansteigen und mit 0 beginnen. |
|
Der übergebene Datenträger ist ein CD-ROM- oder DVD-Gerät. |
|
Dieser Vorgang ist für dieses Datenträgerpaket nicht zulässig. |
|
Die Plexanzahl für das Volume muss größer als 0 sein. |
|
Die Plexindizes müssen monoton ansteigen und mit 0 beginnen. |
|
Die Stripegröße in Bytes muss eine Leistung von 2 für Striped- und RAID-5-Volumetypen und für alle anderen Volumetypen null sein. |
|
Der angegebene Datenträger fehlt. |
|
Ein Wechseldatenträger enthält keine Medien, die über das Datenträgerarray übergeben werden. |
|
Auf einem der Datenträger ist nicht genügend Speicherplatz vorhanden. |
|
Der Volumetyp wird nicht unterstützt. |
|
Mindestens einer der übergebenen Datenträger wurde nicht gefunden. |
|
Ein einzelner Datenträger kann nicht zu mehreren Membern oder mehreren Plexes desselben Volumes beitragen. |
|
Auf das Zielpaket kann nicht zugegriffen werden. |
|
Die maximale Anzahl von Partitionen (primäre Partitionen oder primäre Partitionen mit einer erweiterten Partition) ist bereits vorhanden, wenn der Aufrufer versucht, eine zusätzliche primäre Partition oder erweiterte Partition zu erstellen. |
|
Der Cache des dynamischen Anbieters ist beschädigt. |
|
Pro Volume sind nicht mehr als 32 Datenträger zulässig. |
|
Die Volumegröße ist zu klein. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | vds.h |
Bibliothek | Uuid.lib |