IVdsVolume::Extend method (vds.h)

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

Memperluas ukuran volume saat ini dengan menambahkan tingkat disk ke setiap anggota setiap pleks.

Sintaks

HRESULT Extend(
  [in]  VDS_INPUT_DISK *pInputDiskArray,
  [in]  LONG           lNumberOfDisks,
  [out] IVdsAsync      **ppAsync
);

Parameter

[in] pInputDiskArray

Penunjuk ke array struktur VDS_INPUT_DISK ; satu struktur untuk setiap disk.

Catatan Penelepon tidak boleh menggunakan indeks anggota default bersama dengan metode Perluas , kecuali volume hanya memiliki satu pleks dengan hanya satu anggota.
 

[in] lNumberOfDisks

Jumlah total disk dalam volume. Penelepon dapat melewati nol ketika pleks volume berisi cukup ruang untuk memperpanjang volume; pInputDiskArray harus NULL.

[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 metode IVdsAsync::Wait pada antarmuka ini dan nilai HRESULT yang berhasil dikembalikan, Anda harus melepaskan antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT 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
Metode ini berhasil bersaing.
VDS_E_CANNOT_EXTEND
0x8004240EL
Volume tidak dapat diperluas karena sistem file pada volume tidak mendukung operasi.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
Tidak ada cukup ruang untuk memperpanjang volume.
VDS_E_VOLUME_NOT_HEALTHY
0x8004243EL
Volume tidak sehat.

Keterangan

Metode ini memperluas volume sederhana pada disk yang sama, atau membuat volume yang membenci dengan memperluas volume ke beberapa disk. Penelepon dapat memperluas volume pada disk dasar, namun tingkat disk harus berdampingan dengan volume.

VDS secara otomatis memperluas sistem file agar sesuai dengan ukuran volume yang diperluas. Sistem file harus mendukung operasi ini. VDS memperluas sistem file, tetapi bukan volume, jika penelepon gagal menentukan tingkat yang akan digunakan.

Operasi perluas dan susutkan hanya didukung pada volume NTFS dan RAW.

VDS menerapkan aturan berikut saat memperluas volume:

  • Untuk jenis pleks sederhana dan membentengi, VDS memperluas satu-satunya anggota pleks dengan tingkat disk apa pun yang belum berkontribusi pada pleks lain—apakah luasnya berada di disk yang sama atau tidak. VDS menggunakan jangkauan disk dalam urutan yang diberikan oleh pemanggil, mengabaikan indeks anggota sejauh ini. Kecuali pada disk dasar, VDS dapat memperluas satu-satunya anggota pleks dengan tingkat disk apa pun pada disk yang sama atau pada disk yang berbeda.
  • Untuk bergaris dan bergaris dengan jenis pleks paritas, VDS menetapkan jangkauan kepada anggota pleks sebagai berikut:
    • Jangkauan masuk ke indeks anggota yang ditentukan oleh pemanggil.
    • Jangkauan masuk ke indeks anggota yang menempati disk yang sama ketika pemanggil gagal menentukan ID anggota.
    VDS tidak pernah menetapkan jangkauan untuk beberapa anggota pada disk yang sama. Pemanggil harus menentukan anggota untuk semua tingkat atau tidak ada; pemanggil tidak dapat menentukan anggota untuk beberapa jangkauan dan bukan untuk yang lain.
Ketika penelepon melewati NULL untuk pInputDiskArray dan nol untuk lNumberOfDisks, VDS mengembalikan S_FALSE dalam objek asinkron dan S_OK untuk metode tersebut. Dalam hal ini, S_OK menunjukkan bahwa VDS telah memulai operasi, tetapi operasinya sinkron.

Pelaksana harus mengembalikan penunjuk ke antarmuka IVdsAsync untuk metode ini, terlepas dari apakah panggilan memulai operasi asinkron.

Persyaratan

   
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

IVdsAsync

IVdsAsync::Tunggu

IVdsVolume

IVdsVolumeShrink::Shrink

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK