Mendaftarkan ISR
Driver menggunakan rutinitas IoConnectInterruptEx untuk mendaftarkan ISR untuk interupsi. IoConnectInterruptEx adalah bagian dari Windows Vista dan sistem operasi yang lebih baru. IoConnectInterruptEx mengambil parameter Parameter tunggal, yang merupakan penunjuk ke struktur IO_CONNECT_INTERRUPT_PARAMETERS . Untuk Windows Server 2003, Windows XP, dan Windows 2000, driver dapat menggunakan pustaka Iointex.lib yang disertakan dalam Windows Driver Kit (WDK).
Pada Windows Vista dan yang lebih baru, IoConnectInterruptEx menyediakan beberapa metode berbeda untuk mendaftarkan ISR. Nilai yang ditentukan untuk Parameters-Version> menentukan metode , sebagai berikut:
Gunakan CONNECT_LINE_BASED untuk mendaftarkan rutinitas InterruptService untuk semua gangguan berbasis lini perangkat. (Perangkat biasanya memiliki paling banyak satu gangguan berbasis baris.) Sistem secara otomatis mendeteksi gangguan berbasis garis yang ditetapkan ke perangkat. Untuk informasi selengkapnya, lihat Menggunakan Versi CONNECT_LINE_BASED IoConnectInterruptEx.
Gunakan CONNECT_MESSAGE_BASED untuk mendaftarkan rutinitas InterruptMessageService untuk semua gangguan sinyal pesan perangkat. Anda juga dapat menentukan rutinitas InterruptService fallback—jika perangkat hanya memiliki gangguan berbasis lini, IoConnectInterruptEx mendaftarkan rutinitas InterruptService sebagai gantinya. Sistem secara otomatis mendeteksi gangguan yang diberi sinyal pesan yang ditetapkan ke perangkat. Untuk informasi selengkapnya, lihat Menggunakan Versi CONNECT_MESSAGE_BASED IoConnectInterruptEx.
Gunakan CONNECT_FULLY_SPECIFIED untuk mendaftarkan rutinitas InterruptService untuk setiap gangguan secara terpisah. Anda dapat menggunakan ini untuk menentukan rutinitas InterruptService untuk interupsi berbasis baris atau bertanda pesan, tetapi Anda harus menentukan interupsi secara manual menggunakan informasi yang diteruskan oleh manajer PnP. Untuk informasi selengkapnya, lihat Menggunakan Versi CONNECT_FULLY_SPECIFIED IoConnectInterruptEx.
Pada sistem operasi sebelum Windows Vista, Anda hanya dapat menggunakan CONNECT_FULLY_SPECIFIED. Jika Anda menentukan CONNECT_LINE_BASED atau CONNECT_MESSAGE_BASED, IoConnectInterruptEx mengembalikan kesalahan. Anda bisa menggunakan perilaku ini untuk menentukan apakah Anda berjalan pada Windows Vista atau sistem yang lebih lama. Untuk informasi selengkapnya, lihat Menggunakan IoConnectInterruptEx Sebelum Windows Vista.