Bluetooth-IOCTLs
Der Bluetooth-Treiberstapel stellt Profiltreibern mehrere IOCTLs zur Verfügung, um Informationen zu sammeln:
Das lokale Bluetooth-Funkgerät und -System.
Bluetooth-Remotegeräte.
Das Gerät, das dazu geführt hat, dass der Plug & Play -Manager (PnP) einen Profiltreiber geladen hat.
Um Informationen über das lokale Bluetooth-Funkgerät und -System zu sammeln, verwendet ein Profiltreiber IOCTL_BTH_GET_LOCAL_INFO. Nachdem die IOCTL zurückgegeben wurde, enthält das AssociatedIrp.SystemBuffer-Element einen Zeiger auf eine BTH_LOCAL_RADIO_INFO-Struktur , die Informationen über das lokale Bluetooth-Funkgerät und das lokale System enthält, einschließlich Flags, die angeben, ob das lokale Funkgerät erkannt und verbunden werden kann. Die zurückgegebene BTH_LOCAL_RADIO_INFO-Struktur enthält eine BTH_DEVICE_INFO-Struktur , die systemspezifische Informationen enthält, und eine BTH_RADIO_INFO-Struktur , die lokale funkspezifische Informationen enthält.
Um Informationen zu einem bestimmten Remote-Bluetooth-Gerät zu sammeln, verwendet ein Profiltreiber IOCTL_BTH_GET_RADIO_INFO. Nachdem die IOCTL zurückgegeben wurde, enthält das AssociatedIrp.SystemBuffer-Element einen Zeiger auf eine BTH_RADIO_INFO-Struktur, die Informationen über das spezifische Remoteradio bereitstellt, einschließlich der Möglichkeit, ob das Remotefunkgerät erkannt und verbunden werden kann.
Um Informationen über alle ermittelten Remoteradios zu sammeln, verwendet ein Profiltreiber IOCTL_BTH_GET_DEVICE_INFO. Nachdem die IOCTL zurückgegeben wurde, enthält sein AssociatedIrp.SystemBuffer-Member einen Zeiger auf eine BTH_DEVICE_INFO_LIST-Struktur , die ein Array von BTH_DEVICE_INFO-Strukturen enthält. Die BTH_DEVICE_INFO_LIST-Struktur enthält einen Arrayeintrag für jeden ermittelten Remotefunk. Die BluetoothGetDeviceInfo-API im Benutzermodus verwendet diese Funktionalität, um Informationen zu allen Remoteradios zurückzugeben.
Um Informationen über das Remotegerät zu sammeln, durch das der PnP-Manager es geladen hat, verwendet ein Profiltreiber IOCTL_INTERNAL_BTHENUM_GET_DEVINFO. Nachdem die IOCTL zurückgegeben wurde, enthält das AssociatedIrp.SystemBuffer-Element einen Zeiger auf eine BTH_DEVICE_INFO Struktur, die Informationen zum Remotegerät enthält, einschließlich seiner Bluetooth-Geräteadresse, des Gerätestatus und seiner CoD-Einstellungen (Class-of-Device).
Ein Profiltreiber verwendet IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO , um Informationen über das zugrunde liegende Gerät und den Dienst abzurufen, die dazu geführt haben, dass der PnP-Manager den Profiltreiber geladen hat. Nachdem die IOCTL zurückgegeben wurde, enthält das AssociatedIrp.SystemBuffer-Element einen Zeiger auf eine BTH_ENUMERATOR_INFO Struktur, die vom Anbieter bereitgestellte Informationen über das Gerät enthält, einschließlich portnummer, Geräteflags, Anbieter-ID und Produkt-ID.
Weitere Informationen zur Verwendung von Bluetooth-IOCTLs und BRBs finden Sie unter Erstellen und Senden eines BRB.