IVdsPack::Metode CreateVolume (vds.h)
[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka COM Layanan Disk Virtual digantikan oleh WINDOWS Storage Management API.]
Membuat volume dalam paket. Penunjuk antarmuka untuk objek volume baru dapat diambil dengan memanggil IVdsAsync::Wait melalui parameter ppAsync . Struktur VDS_ASYNC_OUTPUT yang dikembalikan berisi penunjuk antarmuka objek volume di anggota cv.pVolumeUnk .
Sintaks
HRESULT CreateVolume(
[in] VDS_VOLUME_TYPE type,
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[in] ULONG ulStripeSize,
[out] IVdsAsync **ppAsync
);
Parameter
[in] type
Jenis volume yang dijumlahkan oleh VDS_VOLUME_TYPE. Volume pada disk dasar hanya dapat memiliki satu tingkat, dan hanya bendera VDS_VT_SIMPLE yang valid.
[in] pInputDiskArray
Penunjuk ke array struktur VDS_INPUT_DISK ; satu struktur untuk setiap disk. Disk hanya dapat disertakan dalam array sekali. Semua disk dalam array harus digunakan, atau metode gagal. Penelepon harus mengalokasikan dan menginisialisasi array, dan membebaskan memori saat panggilan kembali.
[in] lNumberOfDisks
Jumlah total disk yang berkontribusi pada volume.
[in] ulStripeSize
Jika volume bergaris, ukuran setiap strip dalam byte. Meneruskan byte nol untuk VDS_VT_SIMPLE, VDS_VT_SPAN, dan VDS_VT_MIRROR; 64 kilobyte untuk VDS_VT_STRIPE dan VDS_VT_PARITY.
[out] ppAsync
Alamat penunjuk antarmuka IVdsAsync , yang diinisialisasi VDS saat dikembalikan. Penelepon harus merilis antarmuka. Gunakan penunjuk ini untuk membatalkan, menunggu, atau mengkueri status operasi.
Jika Anda memanggil IVdsAsync::Wait pada metode ini dan nilai HRESULT yang berhasil dikembalikan, Anda harus merilis antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT dengan memanggil metode IUnknown::Release pada setiap pointer antarmuka. Namun, jika Wait mengembalikan nilai HRESULT kegagalan, atau jika parameter pHrResultWait menerima nilai HRESULT kegagalan, penunjuk antarmuka dalam struktur VDS_ASYNC_OUTPUT adalah 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. Kemungkinan nilai yang dikembalikan termasuk yang berikut ini.
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
Volume berhasil dibuat. |
|
Tidak ada pemberitahuan kedatangan volume yang diterima. Anda mungkin perlu memanggil IVdsService::Refresh. |
|
Volume berhasil dibuat, tetapi VDS gagal memperbarui opsi boot di penyimpanan Boot Configuration Data (BCD).
Windows Server 2003: Opsi boot disimpan dalam file boot.ini pada sistem x86 atau x64 atau NVRAM pada sistem Itanium. |
|
Disk yang ditentukan bukan milik paket yang sama. |
|
Layanan LDM gagal dalam metode . |
|
Ukuran jangkauan yang diteruskan terlalu kecil. |
|
Jumlah disk yang ditentukan tidak valid untuk operasi ini. |
|
Jumlah anggota untuk volume harus lebih besar dari nol. |
|
Indeks anggota harus meningkat secara monoton dan dimulai dengan nol. |
|
Disk yang diteruskan adalah perangkat CD-ROM atau DVD. |
|
Operasi ini tidak diperbolehkan pada paket disk ini. |
|
Jumlah pleks untuk volume harus lebih besar dari nol. |
|
Indeks pleks harus meningkat secara monoton dan dimulai dengan nol. |
|
Ukuran stripe dalam byte harus berupa daya 2 untuk jenis volume bergaris dan RAID-5 dan harus nol untuk semua jenis volume lainnya. |
|
Disk yang ditentukan hilang. |
|
Tidak ada media dalam drive yang dapat dilepas yang diteruskan melalui array disk. |
|
Ruang pada salah satu disk tidak cukup. |
|
Jenis volume tidak didukung, atau volume sudah ada pada disk yang dapat dilepas yang diteruskan ke metode . Disk yang dapat dilepas hanya dapat memiliki satu volume. |
|
Setidaknya salah satu disk yang diteruskan tidak ditemukan. |
|
Satu disk tidak dapat berkontribusi pada beberapa anggota atau beberapa pleks volume yang sama. |
|
Paket target tidak dapat diakses. |
|
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. |
|
Cache penyedia dinamis rusak. |
|
Tidak lebih dari 32 disk diizinkan per volume. |
|
Ukuran volume terlalu kecil. |
Keterangan
Disk dasar hanya dapat berisi volume sederhana. Disk dinamis dapat berisi volume dari semua jenis selama sistem operasi mendukung operasi pengikatan; platform non-server tidak mendukung operasi pengikatan yang toleran terhadap kesalahan. Semua volume yang baru dibuat tidak memiliki huruf kandar.
Pada disk dasar, metode ini membuat partisi utama. Jika sudah ada tiga partisi utama pada disk, ia membuat partisi yang diperluas untuk mencakup ruang disk bebas berdekatan terbesar yang tersisa di disk, dan kemudian membuat drive logis dalam partisi yang diperluas.
Disk tidak dapat berkontribusi pada lebih dari satu pleks volume yang sama; namun, satu disk dapat berkontribusi pada beberapa volume. Volume sederhana hanya memiliki satu struktur VDS_INPUT_DISK , sedangkan volume spanned, striped, mirrored, dan RAID-5 memiliki satu struktur untuk setiap disk yang berkontribusi.
Ukuran disk yang ditentukan dalam struktur VDS_INPUT_DISK dapat berupa disk lengkap atau sebagian disk. Ketika dua disk membentuk volume cermin, VDS menggunakan disk terkecil untuk menghitung ukuran cermin. (Kebijakan penyedia menentukan offset, panjang, dan jumlah jangkauan disk aktual yang dialokasikan pada disk input tertentu.) Gunakan metode IVdsPack::QueryVolumes untuk menentukan ukuran volume yang dibuat.
Untuk membuat volume logis dengan parameter perataan opsional, gunakan metode IVdsPack2::CreateVolume2 atau gunakan kunci registri HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment untuk menentukan nilai perataan dalam byte.
Windows 7, Windows Server 2008 R2, Windows Vista, dan Windows Server 2008: Pada disk dasar, metode CreateVolume mengabaikan 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.
Pelaksana harus mengembalikan penunjuk ke antarmuka IVdsAsync untuk metode ini, terlepas dari apakah panggilan memulai operasi asinkron.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | vds.h |
Pustaka | Uuid.lib |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk