Metode IVdsSubSystem2::CreateLun2 (vdshwprv.h)
[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka COM Layanan Disk Virtual digantikan oleh WINDOWS Storage Management API.]
Membuat LUN. Metode ini identik dengan metode IVdsSubSystem::CreateLun , kecuali bahwa petunjuk otomatis disediakan menggunakan struktur VDS_HINTS2 alih-alih struktur VDS_HINTS .
Sintaks
HRESULT CreateLun2(
[in] VDS_LUN_TYPE type,
[in] ULONGLONG ullSizeInBytes,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[in] LPWSTR pwszUnmaskingList,
[in] VDS_HINTS2 *pHints2,
[out] IVdsAsync **ppAsync
);
Parameter
[in] type
Nilai enumerasi VDS_LUN_TYPE yang menentukan jenis LUN. LUN baru dapat menjadi jenis automagic atau jenis RAID tertentu, tetapi tidak keduanya. Jika penelepon menentukan jenis automagic, satu atau beberapa petunjuk otomatis harus ditentukan dalam parameter pHints .
Penunjuk antarmuka untuk objek LUN baru dapat diambil dengan memanggil metode IVdsAsync::Wait pada pointer antarmuka yang dikembalikan dalam parameter ppAsync . Struktur VDS_ASYNC_OUTPUT yang dikembalikan oleh Wait berisi penunjuk antarmuka objek LUN di anggota cl.pLunUnk .
[in] ullSizeInBytes
Ukuran, dalam byte, dari LUN baru. Penyedia dapat membulatkan ukuran ke atas atau ke bawah untuk memenuhi persyaratan penyelarasan atau pembatasan lainnya. (Dalam kebanyakan kasus, penyedia membulatkan ke atas, memastikan bahwa, dengan pengecualian langka, LUN setidaknya sebesar yang diminta.)
Setelah LUN dibuat, pemanggil dapat menentukan ukuran LUN yang sebenarnya dengan memanggil metode IVdsLun::GetProperties .
[in] pDriveIdArray
Penunjuk ke array yang berisi VDS_OBJECT_ID untuk setiap drive yang akan digunakan untuk membuat LUN. Dengan menentukan nilai non-NULL untuk parameter ini, pemanggil meminta agar penyedia menggunakan semua drive, dalam urutan yang disediakan, menggunakan semua jangkauan pada satu drive sebelum melanjutkan ke drive berikutnya, dan berhenti ketika LUN telah mencapai ukuran yang diminta.
Atau, penelepon dapat mengarahkan penyedia untuk memilih drive secara otomatis dengan melewati NULL dalam parameter ini dan 0 di lNumberOfDrives. (Teruskan NULL jika dan hanya jika lNumberOfDrives adalah 0.)
Jika parameter jenis menentukan jenis automagic, parameter ini harus NULL.
[in] lNumberOfDrives
Jumlah drive yang ditentukan dalam pDriveIdArray. Jika penelepon melewati 0, penyedia akan memilih drive.
Jika parameter jenis menentukan jenis automagic, parameter ini harus 0.
Setelah LUN dibuat, pemanggil dapat menentukan drive mana yang digunakan dengan memanggil metode IVdsLunPlex::QueryExtents .
[in] pwszUnmaskingList
Daftar yang menentukan komputer yang akan diberikan akses LUN. Daftar ini adalah string yang dibatasi titik koma, dihentikan NULL, dan dapat dibaca manusia.
Jika nilainya adalah "", semua komputer yang memiliki port HBA yang terpasang pada subsistem penyimpanan akan diberikan akses ke LUN. Jika nilainya adalah "", tidak ada komputer yang akan diberikan akses ke LUN.
Jika "*" atau "" ditentukan, tidak ada nilai lain yang dapat ditentukan.
Untuk jaringan Fibre Channel dan jaringan SCSI (SAS) yang terpasang serial, setiap entri adalah World-Wide Name (WWN) 64-bit dari setiap port tempat LUN dibuka kedoknya, diformat sebagai string heksadesimal (panjang 16 karakter), byte paling signifikan terlebih dahulu. Misalnya, alamat WWN 01:23:45:67:89:AB:CD:EF diwakili sebagai "0123456789ABCDEF". Untuk informasi selengkapnya, lihat spesifikasi T10 untuk Fibre Channel dan SAS.
Untuk jaringan iSCSI, setiap entri adalah nama yang memenuhi syarat (IQN) iSCSI dari setiap inisiator tempat LUN dibongkar. LUN yang tidak dimasuki ke inisiator tertentu dianggap terkait dengan inisiator tersebut.
[in] pHints2
Penunjuk ke struktur VDS_HINTS2 yang menentukan petunjuk yang akan digunakan dalam membuat LUN. Penyedia tidak diperlukan untuk menerapkan petunjuk ke LUN. Petunjuk yang ditentukan dalam struktur VDS_HINTS2 hanya permintaan ke penyedia.
Setelah LUN dibuat, penelepon dapat menentukan petunjuk yang diterapkan penyedia dengan memanggil metode IVdsLun2::QueryHints2 .
Jika parameter jenis menentukan jenis non-otomatis, parameter ini harus NULL.
[out] ppAsync
Alamat penunjuk antarmuka IVdsAsync , yang diinisialisasi VDS saat dikembalikan. Penelepon harus merilis antarmuka. Gunakan antarmuka ini untuk membatalkan, menunggu, atau mengkueri status operasi.
Jika IVdsAsync::Wait dipanggil pada penunjuk antarmuka yang dikembalikan dan nilai HRESULT yang berhasil dikembalikan, antarmuka yang dikembalikan dalam struktur VDS_ASYNC_OUTPUT harus dirilis 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 |
---|---|
|
Ada masalah perangkat lunak atau komunikasi di dalam penyedia yang menyimpan informasi tentang array. Gunakan metode IVdsHwProvider::Reenumerate diikuti dengan metode IVdsHwProvider::Refresh untuk memulihkan cache. |
|
Objek subsistem tidak ada lagi. |
|
Subsistem dalam status gagal dan tidak dapat melakukan operasi yang diminta. |
|
Operasi lain sedang berlangsung; operasi ini tidak dapat dilanjutkan sampai operasi atau operasi sebelumnya selesai. |
|
Pengidentifikasi tidak merujuk ke objek yang ada. Nilai ini dapat dikembalikan dari metode apa pun yang mengambil konstanta VDS_OBJECT_ID . |
|
Operasi atau kombinasi parameter ini tidak didukung oleh penyedia ini. |
|
Tidak cukup ruang yang dapat digunakan untuk operasi ini. |
|
Terlalu sedikit drive gratis yang ada di subsistem untuk menyelesaikan operasi ini. |
Keterangan
Dengan memilih nilai yang sesuai untuk parameter jenis dan pHints2 , pemanggil dapat menentukan atribut LUN sepenuhnya, sebagian, atau minimal. Penyedia dapat secara otomatis menyertakan atribut yang tidak ditentukan, berdasarkan petunjuk otomatis yang ditentukan dalam struktur VDS_HINTS2 yang dituju parameter pHints .
Catatan untuk pelaksana: Penyedia harus mengembalikan penunjuk antarmuka IVdsAsync dalam parameter ppAsync , bahkan jika panggilan ke metode ini tidak memulai operasi asinkron.
Daftar WWN dan IQN dalam parameter pwszUnmaskingList mungkin berisi nama duplikat. Penyedia bertanggung jawab untuk memvalidasi semua nama dalam daftar dan menghapus duplikat jika perlu.
Menanggapi metode CreateLun2 dan sebelum membuka kemasan LUN baru ke host mana pun, penyedia harus mengisi megabyte pertama dan terakhir dengan nol, membiarkan LUN tidak diinisialisasi.
Ada perbedaan halang antara nilai E_INVALIDARG dan pengembalian VDS_E_NOT_SUPPORTED . Penyedia tidak diharapkan untuk mengimplementasikan setiap fitur yang dapat disajikan API VDS kepada klien. Misalnya, metode CreateLun2 memaparkan kemampuan untuk membuat berbagai jenis LUN (misalnya, sederhana, cermin, bergaris, dan paritas). Namun, penyedia tidak diharuskan untuk mendukung semua jenis LUN. Jika penelepon menentukan nilai untuk parameter jenis yang bukan nilai enumerasi VDS_LUN_TYPE yang valid, penyedia harus mengembalikan E_INVALIDARG. Jika penelepon menentukan nilai jenis valid yang tidak didukung penyedia, penyedia harus mengembalikan VDS_E_NOT_SUPPORTED.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | vdshwprv.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