藍牙 HFP DDI IOCTLs
Windows 8引進了一組 I/O 控制程式碼, (IOCTLs) 作為 DDI 的一部分,讓音訊驅動程式能夠使用免持式設定檔 (HFP) 類別驅動程式,以操作藍牙音訊旁路連線。
除非另有說明,否則本節中的所有 IOCTL 都適用下列內容:
如果要求成功,STATUS_BLOCK結構的資訊成員會設定為輸出緩衝區的大小,以位元組為單位。 否則,Information 成員會設定為零。 Status 成員會設定為 NTSTATUS 值。
所有 IOCTLS 都需要 IRQL < = PASSIVE_LEVEL。
音訊驅動程式應該使用 IOCTL 搭配IRP_MJ_DEVICE_CONTROL要求。
對於大部分的 IOCTL 函式程式碼,當音訊驅動程式初始化裝置控制項 IRP 以傳送至 HFP 驅動程式時,音訊驅動程式必須在 HFP 驅動程式的IO_STACK_LOCATION中初始化 FileObject 指標。 音訊驅動程式通常會藉由呼叫 IoGetDeviceObjectPointer 來擷取檔案物件指標。
音訊驅動程式可能會將許多要求傳送到任意執行緒 (,換句話說,「非同步」要求) 。 在這些情況下,音訊驅動程式必須使用 IoAllocateIrp 方法來建置 IRP 本身,並直接在 IRP 中設定欄位,而不是呼叫 IoBuildDeviceIoControlRequest。
下列主題提供有關這些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已藉由新增下列新 IOCTL 來更新一組 IOCTL:
IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR2
IOCTL_BTHHFP_DEVICE_GET_NRECDISABLE_STATUS_UPDATE
Windows 10已藉由新增下列 IOCTL 來更新一組 IOCTL:
IOCTL_BTHHFP_DEVICE_GET_CODEC_ID
如需使用這些 IOCTLs 之結構的相關資訊,請參閱 藍牙 HFP DDI 結構。