Bagikan melalui


Object-Based

Sistem operasi berbasis Microsoft Windows NT berbasis objek. Berbagai komponen dalam eksekutif mendefinisikan satu atau beberapa jenis objek. Setiap komponen menyediakan rutinitas pendukung mode kernel yang memanipulasi instance dari jenis objeknya. Tidak ada komponen yang dapat langsung mengakses objek komponen lain. Untuk menggunakan objek komponen lain, komponen harus memanggil rutinitas dukungan yang diekspor.

Desain ini memungkinkan sistem operasi menjadi portabel dan fleksibel. Misalnya, dimungkinkan untuk rilis sistem operasi di masa mendatang untuk berisi komponen kernel yang dikodekan ulang yang menentukan jenis objek yang sama, tetapi dengan struktur internal yang sama sekali berbeda. Jika versi rekode hipotetis kernel ini mengekspor serangkaian rutinitas dukungan yang memiliki nama dan parameter yang sama dengan set yang ada, perubahan internal tidak akan berpengaruh pada portabilitas komponen eksekutif lainnya dalam sistem yang ada.

Demikian juga, untuk tetap portabel dan dapat dikonfigurasi, driver harus berkomunikasi dengan sistem operasi dan satu sama lain dengan hanya menggunakan rutinitas dukungan dan antarmuka lain yang dijelaskan dalam WDK.

Seperti sistem operasi, driver juga berbasis objek. Contohnya:

  • Objek file mewakili koneksi aplikasi mode pengguna ke perangkat.

  • Objek perangkat mewakili perangkat logis, virtual, atau fisik setiap driver.

  • Objek driver mewakili gambar beban setiap driver.

Manajer I/O menentukan struktur dan antarmuka untuk objek file, objek perangkat, dan objek driver.

Seperti komponen eksekutif lainnya, driver menggunakan objek dengan memanggil rutinitas dukungan mode kernel yang diekspor manajer I/O dan komponen sistem lainnya. Rutinitas mode kernel umumnya memiliki nama yang mengidentifikasi objek tertentu yang dimanipulasi oleh setiap rutin, serta operasi yang dilakukan rutin tersebut pada objek itu. Nama rutinitas dukungan ini memiliki bentuk berikut:

PrefixOperationObject

di mana

Prefix Mengidentifikasi komponen kernel mode yang mengekspor rutinitas dukungan dan, biasanya, komponen yang menentukan jenis objek. Sebagian besar awalan memiliki dua huruf.

Operasi Menjelaskan apa yang dilakukan pada objek.

Benda Mengidentifikasi jenis objek.

Misalnya, rutinitas IoCreateDevice manajer I/O membuat objek perangkat untuk mewakili perangkat fisik, logis, atau virtual menjadi target dari permintaan I/O.

Satu komponen sistem dapat mengekspor rutinitas yang memanggil rutinitas dukungan komponen lain. Ini dapat mengurangi jumlah panggilan yang harus dilakukan driver. Manajer I/O, khususnya, menyediakan rutinitas tertentu yang memudahkan pengembangan driver. Misalnya, IoConnectInterruptEx, yang dipanggil oleh driver lapis paling bawah untuk mendaftarkan Rutinitas Layanan Interupsi (ISR) mereka, memanggil fungsi dukungan kernel untuk objek interupsi.

Opasitas Objek

Beberapa objek yang ditentukan sistem buram: hanya komponen sistem yang menentukan yang mengetahui struktur internal objek tersebut dan dapat langsung mengakses semua data yang dikandung objek. Komponen sistem yang mendefinisikan objek buram menyediakan rutinitas dukungan yang dapat dipanggil oleh driver dan komponen mode kernel lainnya untuk memanipulasi objek tersebut. Driver tidak pernah mengakses struktur objek buram secara langsung.

Nota Untuk mempertahankan portabilitas driver, driver harus menggunakan rutinitas dukungan yang disediakan sistem untuk memanipulasi objek yang ditentukan sistem. Komponen sistem yang menentukan dapat mengubah struktur internal jenis objeknya kapan saja.