Bluetooth HFP DDI IOCTLs
Windows 8 führt eine Reihe von I/O-Steuercodes (IOCTLs) als Teil eines DDI ein, mit dem der Audiotreiber mit dem HFP-Klassentreiber (Hands-Free Profile) arbeiten kann, um eine Bluetooth-Audioumgehungsverbindung zu betreiben.
Sofern nicht anders angegeben, gilt Folgendes für alle IOCTLs in diesem Abschnitt:
Wenn die Anforderung erfolgreich ist, wird der Information-Member der STATUS_BLOCK-Struktur auf die Größe des Ausgabepuffers in Bytes festgelegt. Andernfalls wird das Information-Element auf 0 (null) festgelegt. Das Status-Element wird auf einen NTSTATUS-Wert festgelegt.
Alle IOCTLS erfordern IRQL <= PASSIVE_LEVEL.
Der Audiotreiber sollte die IOCTLs mit der IRP_MJ_DEVICE_CONTROL-Anforderung verwenden.
Bei den meisten IOCTL-Funktionscodes muss der Audiotreiber den FileObject-Zeiger im IO_STACK_LOCATION für den HFP-Treiber initialisieren, wenn der Audiotreiber eine Gerätesteuerungs-IRP zum Senden an den HFP-Treiber initialisiert. Der Audiotreiber ruft den Dateiobjektzeiger in der Regel durch Aufrufen von IoGetDeviceObjectPointer ab.
Der Audiotreiber sendet wahrscheinlich viele dieser Anforderungen an einen beliebigen Thread (d. h. eine "asynchrone" Anforderung). In diesen Fällen muss der Audiotreiber das IRP selbst mithilfe der IoAllocateIrp-Methode erstellen und Felder im IRP direkt festlegen, anstatt IoBuildDeviceIoControlRequest aufzurufen.
Die folgenden Themen enthalten weitere Details zu diesen Windows 8 IOCTLs:
IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR
IOCTL_BTHHFP_DEVICE_GET_VOLUMEPROPERTYVALUES
IOCTL_BTHHFP_DEVICE_GET_KSNODETYPES
IOCTL_BTHHFP_DEVICE_GET_CONTAINERID
IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT
IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT
IOCTL_BTHHFP_DEVICE_GET_CONNECTION_STATUS_UPDATE
IOCTL_BTHHFP_SPEAKER_SET_VOLUME
IOCTL_BTHHFP_SPEAKER_GET_VOLUME_STATUS_UPDATE
IOCTL_BTHHFP_MIC_GET_VOLUME_STATUS_UPDATE
IOCTL_BTHHFP_STREAM_GET_STATUS_UPDATE
Windows 8.1 hat den Satz von IOCTLs aktualisiert, indem die folgenden neuen hinzugefügt wurden:
IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR2
IOCTL_BTHHFP_DEVICE_GET_NRECDISABLE_STATUS_UPDATE
Windows 10 hat den Satz von IOCTLs aktualisiert, indem die folgende neue hinzugefügt wurde:
IOCTL_BTHHFP_DEVICE_GET_CODEC_ID
Informationen zu den Strukturen, die mit diesen IOCTLs arbeiten, finden Sie unter Bluetooth HFP DDI-Strukturen.