Bagikan melalui


Metode IVdsPack2::CreateVolume2 (vds.h)

[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka COM Layanan Disk Virtual digantikan oleh API Manajemen Penyimpanan Windows.]

Membuat volume dalam paket disk dengan parameter perataan opsional.

Sintaks

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

Nilai dari enumerasi VDS_VOLUME_TYPE yang menunjukkan jenis volume yang akan dibuat.

[in] pInputDiskArray

Array struktur VDS_INPUT_DISK yang menunjukkan disk tempat membuat volume.

Catatan Ukuran array ini harus 32 objek atau kurang, karena Windows memberlakukan batas di mana tidak lebih dari 32 disk dapat digunakan dengan satu volume.
 

[in] lNumberOfDisks

Jumlah elemen dalam array yang diarahkan oleh parameter pInputDiskArray .

[in] ulStripeSize

Ukuran stripe, dalam byte, dari volume baru.

Catatan Ukuran garis harus 65536 jika jenisnya VDS_VT_STRIPE atau VDS_VT_PARITY; jika tidak, ukuran garis HARUS 0.
 

[in] ulAlign

Jumlah byte untuk perataan volume. Parameter ini bersifat opsional dan bisa nol. Jika nol ditentukan, server akan menentukan nilai perataan tergantung pada ukuran disk tempat volume dibuat.

Windows 7, Windows Server 2008 R2, Windows Vista, dan Windows Server 2008: Pada disk dasar, metode CreateVolume2 mengabaikan parameter ini dan kunci registri HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment . Ini adalah masalah yang diketahui dan sedang ditangani. Sebagai solusinya, gunakan metode IVdsAdvancedDisk::CreatePartition atau IVdsCreatePartitionEx::CreatePartitionEx untuk membuat partisi pada disk dasar sehingga selaras dengan benar. Partisi dan volume dinamis diselaraskan menggunakan nilai di bawah kunci registri berikut:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment

Perataan default adalah 1 MB jika disk 4 GB atau lebih besar, atau 64 KB jika disk lebih kecil dari 4 GB.

[out] ppAsync

Arahkan ke antarmuka IVdsAsync yang setelah berhasil diselesaikan menerima antarmuka IVdsAsync untuk memantau dan mengontrol operasi ini. Penelepon harus merilis antarmuka yang diterima ketika mereka selesai dengannya. Jika metode IVdsAsync::Wait dipanggil pada antarmuka dan nilai HRESULT yang berhasil dikembalikan, antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT harus dirilis dengan memanggil metode IUnknown::Release pada setiap penunjuk antarmuka. Namun, jika Wait mengembalikan nilai HRESULT yang gagal, atau jika parameter pHrResultWait menerima nilai HRESULT yang gagal, penunjuk antarmuka dalam struktur VDS_ASYNC_OUTPUTadalah NULL dan tidak perlu dirilis. Anda dapat menguji keberhasilan atau kegagalan nilai HRESULT dengan menggunakan makro BERHASIL dan GAGAL yang ditentukan dalam Winerror.h.

Nilai kembali

Metode ini dapat mengembalikan nilai HRESULT standar, seperti E_INVALIDARG atau E_OUTOFMEMORY, dan nilai pengembalian khusus VDS. Ini juga dapat mengembalikan kode kesalahan sistem yang dikonversi menggunakan makro HRESULT_FROM_WIN32 . Kesalahan dapat berasal dari VDS itu sendiri atau dari penyedia VDS yang mendasar yang sedang digunakan. Nilai yang mungkin dikembalikan termasuk yang berikut ini.

Mengembalikan kode/nilai Deskripsi
S_OK
Volume berhasil dibuat.
VDS_S_NO_NOTIFICATION
0x00042517L
Tidak ada pemberitahuan kedatangan volume yang diterima. Anda mungkin perlu memanggil IVdsService::Refresh.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
Volume berhasil dibuat, tetapi VDS gagal memperbarui opsi boot di penyimpanan Boot Configuration Data (BCD).
VDS_E_ALIGN_IS_ZERO
0x80042590L
Perataan yang ditentukan adalah nol.
VDS_E_ALIGN_NOT_A_POWER_OF_TWO
0x8004258FL
Perataan yang ditentukan bukan kekuatan dua.
VDS_E_DISK_NOT_FOUND_IN_PACK
0x8004252DL
Disk yang ditentukan bukan milik paket yang sama.
VDS_E_DMADMIN_METHOD_CALL_FAILED
0x80042420L
Layanan LDM gagal metode .
VDS_E_EXTENT_SIZE_LESS_THAN_MIN
0x80042433L
Ukuran jangkauan yang diteruskan terlalu kecil.
VDS_E_INVALID_DISK_COUNT
0x80042526L
Jumlah disk yang ditentukan tidak valid untuk operasi ini.
VDS_E_INVALID_MEMBER_COUNT
0x80042522L
Jumlah anggota untuk volume harus lebih besar dari nol.
VDS_E_INVALID_MEMBER_ORDER
0x80042524L
Indeks anggota harus meningkat secara monoton dan dimulai dengan nol.
VDS_E_INVALID_OPERATION
0x80042415L
Disk yang diteruskan adalah perangkat CD-ROM atau DVD.
VDS_E_INVALID_PACK
0x8004251AL
Operasi ini tidak diperbolehkan pada paket disk ini.
VDS_E_INVALID_PLEX_COUNT
0x80042521L
Jumlah pleks untuk volume harus lebih besar dari nol.
VDS_E_INVALID_PLEX_ORDER
0x80042523L
Indeks pleks harus meningkat secara monoton dan dimulai dengan nol.
VDS_E_INVALID_STRIPE_SIZE
0x80042525L
Ukuran stripe dalam byte harus memiliki daya 2 untuk jenis volume bergaris dan RAID-5 dan harus nol untuk semua jenis volume lainnya.
VDS_E_MISSING_DISK
0x80042454L
Disk yang ditentukan hilang.
VDS_E_NO_MEDIA
0x80042412L
Tidak ada media dalam drive yang dapat dilepas yang diteruskan melalui array disk.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
Tidak cukup ruang pada salah satu disk.
VDS_E_NOT_SUPPORTED
0x80042400L
Jenis volume tidak didukung.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Setidaknya salah satu disk yang diteruskan tidak ditemukan.
VDS_E_ONE_EXTENT_PER_DISK
0x80042531L
Satu disk tidak dapat berkontribusi pada beberapa anggota atau beberapa pleks dari volume yang sama.
VDS_E_PACK_OFFLINE
0x80042444L
Paket target tidak dapat diakses.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
Jumlah maksimum partisi (partisi utama atau partisi utama dengan partisi yang diperluas) sudah ada ketika pemanggil mencoba membuat partisi utama tambahan atau partisi yang diperluas.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Cache penyedia dinamis rusak.
VDS_E_VOLUME_DISK_COUNT_MAX_EXCEEDED
0x80042529L
Tidak lebih dari 32 disk diizinkan per volume.
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
Ukuran volume terlalu kecil.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header vds.h
Pustaka Uuid.lib

Lihat juga

IVdsPack2

IVdsPack::CreateVolume