Model Objek VDS
[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka Virtual Disk Service COM digantikan oleh Windows Storage Management API.]
VDS menyediakan akses tidak langsung ke perangkat penyimpanan berbasis host, seperti disk dan perangkat CD-ROM, dan ke array disk yang dikelola oleh pengontrol RAID perangkat keras. Sementara beberapa entitas penyimpanan memodelkan perangkat fisik, yang lain memodelkan konstruksi virtual: volume, partisi, dan sebagainya. Objek yang dijelaskan dalam topik ini mewakili entitas fisik dan virtual VDS.
Aplikasi memanggil metode yang diekspos oleh objek ini dan VDS memanggil penyedia yang sesuai untuk melakukan operasi penyimpanan yang diminta. Aplikasi tidak pernah memanggil program penyedia secara langsung.
Klasifikasi Objek
Seperti yang ditunjukkan oleh ilustrasi berikut, program penyedia perangkat lunak mengimplementasikan objek yang memodelkan entitas berbasis host; program penyedia perangkat keras menerapkan objek yang memodelkan perangkat RAID perangkat keras internal dan eksternal; objek umum yang tersisa bersifat independen penyedia, atau diimplementasikan oleh VDS. Spindle, yang bukan objek VDS, adalah istilah untuk media penyimpanan generik yang terdiri dari tingkat disk atau drive.
Untuk mempelajari selengkapnya tentang perilaku setiap objek, pilih dari topik berikut:
- Loader layanan dan objek layanan, lihat Startup dan Service Objects.
- Enumerasi dan objek asinkron, lihat Objek Pembantu .
- Objek penyedia, lihat Objek Penyedia.
- Mengemas, disk, volume, dan objek pleks volume, lihat Objek Penyedia Perangkat Lunak.
- Subsistem, pengontrol, drive, LUN, dan objek pleks LUN, lihat Objek Penyedia Perangkat Keras.
Pembuatan Objek
Konfigurasi dan operasi kueri yang terkait dengan pembuatan objek dapat memakan waktu yang cukup lama untuk diselesaikan; dengan demikian, VDS memanggil semua metode secara asinkron. Penyedia penemuan mengembalikan semua peristiwa penyelesaian, kesalahan, atau perubahan status. Penyedia perangkat lunak juga mencatat semua kesalahan dan perubahan status yang signifikan.
Penghapusan Objek
Beberapa metode VDS menghapus atau mengubah objek VDS. Penelepon dapat menyimpan referensi, dengan cara penunjuk antarmuka, ke objek yang dihapus setelah metode kembali. Saat penelepon merilis antarmuka, VDS akan menghapus objek.
Sehubungan dengan penghapusan objek, penelepon harus menahan diri dari memanggil apa pun kecuali metode IUnknown::Release pada antarmuka ini. Penyedia harus cukup kuat untuk menangani penelepon yang tidak benar; jika penelepon memanggil metode pada objek yang dihapus, penyedia harus mengembalikan VDS_E_OBJECT_DELETED.
Inisialisasi Layanan
VDS menyediakan pengidentifikasi kelas (Clsid) untuk pemuat layanan dan objek layanan, tetapi hanya Clsid pemuat layanan yang bersifat publik. Inisialisasi layanan terjadi ketika penyedia, aplikasi panggilan, dan layanan melakukan tugas-tugas berikut:
Setiap penyedia baru memanggil metode IVdsAdmin::RegisterProvider selama penginstalan untuk mendaftar dengan VDS. Panggilan membuat kunci registri di bawah SARANG SISTEM, yang diidentifikasi oleh GUID objek penyedia. Terkandung di bawah kunci ini adalah Clsid objek penyedia, nama, versi, dan GUID versi penyedia.
Nota
GUID objek penyedia bersifat persisten; GUID objek perangkat lunak dan perangkat keras tidak.
Aplikasi memanggil fungsiCoCreateInstance, meneruskan clsid pemuat layanan sebagai argumen. Dengan pointer ke objek service loader, aplikasi dapat memulai VDS baik secara lokal atau jarak jauh dengan meneruskan nama komputer yang diinginkan sebagai parameter ke metode IVdsServiceLoader::LoadService.
Ketika aplikasi awal melekat pada layanan, VDS pertama kali memanggil CoCreateInstance pada setiap Clsid yang ditemukan di bawah kunci registri, lalu memanggil metode IVdsProviderPrivate::OnLoad pada setiap penyedia untuk menginisialisasi program.
Topik terkait