Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Objek permintaan kerangka kerja mewakili permintaan I/O yang telah dikirim manajer I/O ke driver. Driver berbasis framework memproses setiap permintaan I/O dengan memanggil metode objek permintaan framework.
Setiap permintaan I/O berisi paket permintaan I/O WDM (struktur IRP), tetapi driver yang berbasis kerangka kerja biasanya tidak perlu mengakses struktur IRP.
Sebagian besar objek permintaan kerangka kerja dibuat oleh kerangka kerja, tetapi driver Anda juga dapat membuat objek permintaan.
Minta Objek yang Dibuat oleh Kerangka Kerja
Ketika driver berbasis kerangka kerja menerima paket permintaan I/O (IRP) dari manajer I/O, kerangka kerja mencegat IRP dan membuat objek permintaan kerangka kerja. Kerangka kerja menempatkan objek permintaan ke dalam antrean I/O dan, jika driver telah mendaftarkan penangan permintaan untuk antrean, memanggil penangan yang sesuai.
Diagram berikut mengilustrasikan langkah-langkah yang terjadi saat kerangka kerja membuat objek permintaan untuk operasi baca.
#B0 #A1 #A2 Diagram yang mengilustrasikan langkah-langkah untuk membuat objek permintaan untuk operasi baca dalam driver berbasis kerangka kerja. #A3 #A4 #C5
Langkah-langkah berikut sesuai dengan angka dalam diagram sebelumnya:
Aplikasi mode pengguna membaca file dengan memanggil fungsi ReadFile Microsoft Win32.
Fungsi ReadFile memanggil manajer I/O, yang berjalan dalam mode kernel.
Manajer I/O mengalokasikan struktur IRP dan menyimpan kode fungsi IRP_MJ_READ dalam struktur.
Manajer I/O memanggil rutinitas driver standar DispatchRead untuk driver x, meneruskan pointer ke struktur IRP. Karena driver #B0 x #C1 adalah driver berbasis kerangka kerja, kerangka kerja menyediakan #C3 rutinitas #B2 DispatchRead driver.
Kerangka kerja membuat objek permintaan yang mewakili struktur IRP. Kerangka kerja menambahkan objek permintaan ke salah satu objek antrean driver.
Kerangka kerja memanggil handler permintaan #B0 #A1 EvtIoRead #A2 #C3 driver, melewati handel objek antrean dan handel objek permintaan.
Permintaan Objek yang Dibuat oleh Driver
Driver berbasis kerangka kerja juga dapat membuat objek permintaan. Misalnya, driver mungkin membuat objek permintaan jika menerima permintaan baca atau tulis untuk data dalam jumlah yang lebih besar daripada yang dapat ditangani oleh target I/O driver pada saat yang sama. Dalam situasi seperti itu, driver dapat membagi data menjadi beberapa permintaan yang lebih kecil dan menggunakan objek permintaan tambahan untuk mengirim permintaan yang lebih kecil ini ke satu atau beberapa target I/O.
Untuk membuat objek permintaan, driver Anda harus memanggil WdfRequestCreate diikuti dengan metode objek framework yang menginisialisasi permintaan, seperti WdfUsbTargetPipeFormatRequestForRead.
Jika driver menerima IRP WDM dalam rutinitas pengiriman WDM dan kemudian melayani atau meneruskannya dengan menggunakan kerangka kerja, driver dapat memanggil WdfRequestCreateFromIrp.