Metode IVdsHwProviderStoragePools::CreateLunInStoragePool (vdshwprv.h)

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

Membuat LUN di kumpulan penyimpanan.

Sintaks

HRESULT CreateLunInStoragePool(
  [in]  VDS_LUN_TYPE  type,
  [in]  ULONGLONG     ullSizeInBytes,
  [in]  VDS_OBJECT_ID StoragePoolId,
  [in]  LPWSTR        pwszUnmaskingList,
  [in]  VDS_HINTS2    *pHints2,
  [out] IVdsAsync     **ppAsync
);

Parameter

[in] type

Nilai enumerasi VDS_LUN_TYPE yang menentukan jenis LUN yang akan dibuat. LUN baru dapat berupa jenis automagic atau jenis RAID tertentu, tetapi tidak keduanya. Jika penelepon menentukan jenis automagic, satu atau beberapa petunjuk otomatis harus ditentukan dalam parameter pHints2 .

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 batasan 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] StoragePoolId

Nilai VDS_OBJECT_ID yang mengidentifikasi kumpulan penyimpanan tempat LUN akan dibuat. Parameter ini diperlukan dan tidak dapat GUID_NULL.

[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.

Catatan Dalam praktiknya, jika nilainya adalah "", sebagian besar penyedia perangkat keras hanya memberikan port dan inisiator pada akses komputer lokal 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 kemasnya, diformat sebagai string heksadesimal (panjang 16 karakter), byte paling signifikan terlebih dahulu. Misalnya, alamat WWN 01:23:45:67:89:AB:CD:EF dinyatakan sebagai "0123456789ABCDEF". Untuk informasi selengkapnya, lihat spesifikasi T10 untuk Fibre Channel dan SAS.

Untuk jaringan iSCSI, setiap entri adalah nama yang memenuhi syarat iSCSI (IQN) dari setiap inisiator tempat LUN dibongkar. LUN yang tidak dimasak ke inisiator tertentu dianggap terkait dengan inisiator tersebut.

Catatan Daftar buka kemasan dapat berisi WWN atau IQN yang sama lebih dari sekali. Pemanggil tidak diharapkan untuk menghapus duplikat dari daftar atau untuk memvalidasi format WWN atau IQN.
 
Setelah LUN dibuat, pemanggil dapat menentukan daftar pembukaan kemasan aktual dengan memanggil metode IVdsLun::GetProperties .

[in] pHints2

Penunjuk ke struktur VDS_HINTS2 yang menentukan petunjuk yang akan digunakan dalam membuat LUN. Penyedia tidak diharuskan untuk menerapkan petunjuk ke LUN. Petunjuk yang ditentukan dalam struktur VDS_HINTS2 hanya merupakan permintaan ke penyedia.

Setelah LUN dibuat, pemanggil dapat menentukan petunjuk yang diterapkan penyedia dengan memanggil metode IVdsLun2::QueryHints2 .

Jika parameter jenis menentukan jenis non-otomatis, parameter ini harus NULL.

[out] ppAsync

Penunjuk 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.

Mengembalikan nilai

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.

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.

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 pHints2 .

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 CreateLunInStoragePool dan sebelum membuka kemasan LUN baru ke host mana pun, penyedia harus mengisi megabyte pertama dan terakhir dengan nol, sehingga LUN tidak diinisialisasi.

Ada perbedaan halang antara nilai E_INVALIDARG dan VDS_E_NOT_SUPPORTED yang dikembalikan. Penyedia tidak diharapkan untuk mengimplementasikan setiap fitur yang dapat disajikan API VDS kepada klien. Misalnya, metode CreateLunInStoragePool mengekspos kemampuan untuk membuat berbagai jenis LUN (misalnya, sederhana, cermin, bergaris, dan paritas). Namun, penyedia tidak diharuskan untuk mendukung semua jenis LUN. Jika pemanggil 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

   
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

IVdsHwProviderStoragePools

IVdsLun2::QueryHints2

IVdsLun::GetProperties

VDS_HINTS2

VDS_LUN_TYPE