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.
Manajer PnP menggunakan IRP ini untuk meminta jenis dan nomor instans bus induk perangkat.
Driver bus harus menangani permintaan ini untuk perangkat anak mereka (PDO). Fungsi dan driver filter tidak menangani IRP ini.
Nilai
0x15
Kode Utama
Ketika Dikirim
Manajer PnP mengirimkan IRP ini ketika perangkat dijumlahkan.
Manajer PnP mengirimkan IRP ini di IRQL PASSIVE_LEVEL dalam konteks utas arbitrer.
Parameter Input
Tidak ada
Parameter Output
Dikembalikan di blok status I/O.
Blok Status I/O
Driver bus mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS atau ke status kesalahan yang sesuai.
Jika berhasil, pengemudi bus mengatur Irp-IoStatus.Information> ke pointer ke struktur PNP_BUS_INFORMATION yang telah selesai. (Lihat bagian "Operasi" untuk informasi selengkapnya.) Pada kesalahan, driver bus mengatur Irp-IoStatus.Information> ke nol.
Fungsi dan driver filter tidak menangani IRP ini.
Operasi
Informasi yang dikembalikan sebagai respons terhadap IRP ini tersedia untuk fungsi dan memfilter driver untuk perangkat di bus. Fungsi dan driver filter dapat memanggil IoGetDeviceProperty untuk meminta DevicePropertyBusTypeGuid, DevicePropertyLegacyBusType, atau DevicePropertyBusNumber. Fungsi dan filter driver yang mendukung perangkat di lebih dari satu bus dapat menggunakan informasi ini untuk menentukan bus mana perangkat tertentu berada.
Jika sopir bus mengembalikan informasi sebagai respons terhadap IRP ini, ia mengalokasikan struktur PNP_BUS_INFORMATION dari memori halaman. Manajer PnP membebaskan struktur ketika tidak lagi diperlukan.
Struktur PNP_BUS_INFORMATION memiliki format berikut:
typedef struct _PNP_BUS_INFORMATION {
GUID BusTypeGuid;
INTERFACE_TYPE LegacyBusType;
ULONG BusNumber;
} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
Anggota struktur didefinisikan sebagai berikut:
BusTypeGuid
Pengemudi bus mengatur BusTypeGuid ke GUID untuk jenis bus tempat perangkat berada. GUID untuk jenis bus standar tercantum dalam Wdmguid.h. Penulis driver harus menghasilkan GUID untuk jenis bus lain menggunakan Uuidgen.
LegacyBusType
Driver bus PnP mengatur LegacyBusType ke INTERFACE_TYPE bus induk. Jenis antarmuka didefinisikan dalam Wdm.h. Beberapa bus memiliki nilai INTERFACE_TYPE tertentu, seperti PCMCIABus, PCIBus, atau PNPISABus. Untuk bus lain, terutama bus yang lebih baru seperti USB, sopir bus mengatur anggota ini ke PNPBus.
LegacyBusType menentukan antarmuka yang digunakan untuk berkomunikasi dengan perangkat. Ini mungkin atau mungkin tidak sesuai dengan jenis bus induk. Misalnya, antarmuka untuk kartu CardBus yang dicolokkan ke pengontrol CardBus PCI adalah PCIBus. Namun, antarmuka untuk kartu PCMCIA pada pengontrol CARDBus PCI adalah PCMCIABus.
BusNumber
Sopir bus menetapkan BusNumber ke angka yang membedakan bus dari bus lain dengan jenis yang sama di komputer. Skema penomoran bus khusus bus. Nomor bus mungkin virtual, tetapi harus cocok dengan penomoran apa pun yang digunakan oleh antarmuka lama seperti IoReportResourceUsage.
Lihat Plug and Play aturan umum untuk menangani Plug and Play runtime integrasi kecil.
Mengirim IRP ini
Dicadangkan untuk penggunaan sistem. Driver tidak boleh mengirim IRP ini.
Hubungi IoGetDeviceProperty untuk mendapatkan informasi tentang bus tempat perangkat terpasang.
Persyaratan
Header |
Wdm.h (termasuk Wdm.h, Ntddk.h, atau Ntifs.h) |