Freigeben über


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.

Hinweis Die Größe dieses Arrays muss 32 Objekte oder weniger betragen, da Windows eine Beschränkung festlegt, bei der nicht mehr als 32 Datenträger mit einem einzelnen Volume verwendet werden dürfen.
 

[in] lNumberOfDisks

Anzahl der Elemente im Array, auf das der Parameter pInputDiskArray verweist.

[in] ulStripeSize

Stripegröße des neuen Volumes in Byte.

Hinweis Die Streifengröße muss 65536 sein, wenn der Typ VDS_VT_STRIPE oder VDS_VT_PARITY ist. Andernfalls MUSS die Streifengröße 0 sein.
 

[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
S_OK
Das Volume wurde erfolgreich erstellt.
VDS_S_NO_NOTIFICATION
0x00042517L
Es wurde keine Volume-Eingangsbenachrichtigung empfangen. Möglicherweise müssen Sie IVdsService::Refresh aufrufen.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
Das Volume wurde erfolgreich erstellt, aber VDS konnte die Startoptionen im BCD-Speicher (Boot Configuration Data) nicht aktualisieren.
VDS_E_ALIGN_IS_ZERO
0x80042590L
Die angegebene Ausrichtung ist null.
VDS_E_ALIGN_NOT_A_POWER_OF_TWO
0x8004258FL
Die angegebene Ausrichtung ist keine Potenz von zwei.
VDS_E_DISK_NOT_FOUND_IN_PACK
0x8004252DL
Die angegebenen Datenträger gehören nicht zum gleichen Paket.
VDS_E_DMADMIN_METHOD_CALL_FAILED
0x80042420L
Fehler beim LDM-Dienst bei einer Methode.
VDS_E_EXTENT_SIZE_LESS_THAN_MIN
0x80042433L
Die übergebene Blöckegröße ist zu klein.
VDS_E_INVALID_DISK_COUNT
0x80042526L
Die angegebene Anzahl von Datenträgern ist für diesen Vorgang ungültig.
VDS_E_INVALID_MEMBER_COUNT
0x80042522L
Die Memberanzahl für das Volume muss größer als 0 sein.
VDS_E_INVALID_MEMBER_ORDER
0x80042524L
Die Memberindizes müssen monoton ansteigen und mit 0 beginnen.
VDS_E_INVALID_OPERATION
0x80042415L
Der übergebene Datenträger ist ein CD-ROM- oder DVD-Gerät.
VDS_E_INVALID_PACK
0x8004251AL
Dieser Vorgang ist für dieses Datenträgerpaket nicht zulässig.
VDS_E_INVALID_PLEX_COUNT
0x80042521L
Die Plexanzahl für das Volume muss größer als 0 sein.
VDS_E_INVALID_PLEX_ORDER
0x80042523L
Die Plexindizes müssen monoton ansteigen und mit 0 beginnen.
VDS_E_INVALID_STRIPE_SIZE
0x80042525L
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.
VDS_E_MISSING_DISK
0x80042454L
Der angegebene Datenträger fehlt.
VDS_E_NO_MEDIA
0x80042412L
Ein Wechseldatenträger enthält keine Medien, die über das Datenträgerarray übergeben werden.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
Auf einem der Datenträger ist nicht genügend Speicherplatz vorhanden.
VDS_E_NOT_SUPPORTED
0x80042400L
Der Volumetyp wird nicht unterstützt.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Mindestens einer der übergebenen Datenträger wurde nicht gefunden.
VDS_E_ONE_EXTENT_PER_DISK
0x80042531L
Ein einzelner Datenträger kann nicht zu mehreren Membern oder mehreren Plexes desselben Volumes beitragen.
VDS_E_PACK_OFFLINE
0x80042444L
Auf das Zielpaket kann nicht zugegriffen werden.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
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.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Der Cache des dynamischen Anbieters ist beschädigt.
VDS_E_VOLUME_DISK_COUNT_MAX_EXCEEDED
0x80042529L
Pro Volume sind nicht mehr als 32 Datenträger zulässig.
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
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

Weitere Informationen

IVdsPack2

IVdsPack::CreateVolume