IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR IOCTL (bthhfpddi.h)

The audio driver issues the IOCTL_BTHHFP_DEVICE_GET_DESCRIPTOR control code to get information about an enabled GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS device interface.

Note  This IOCTL supersedes IOCTL_BTHHFP_DEVICE_GET_KSNODETYPES and IOCTL_BTHHFP_DEVICE_GET_CONTAINERID which have now been deprecated.
 

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

None.

Input buffer length

None.

Output buffer

A buffer containing a BTHHFP_DESCRIPTOR structure followed by any other data referenced by the structure. This is true, if the output buffer size is sufficient and the request succeeds. In particular, the buffer includes storage for the string referenced by the FriendlyName field of the BTHHFP_DESCRIPTOR structure.

Output buffer length

The size of a BTHHFP_DESCRIPTOR structure and referenced data.

Status block

If the routine succeeds, then Status is set to STATUS_SUCCESS and the Information member is the number of bytes that the routine writes to the output buffer.

Note  This can be larger than the size of the BTHHFP_DESCRIPTOR structure, as the output buffer may contain other data referenced by the structure
 
If Status is set to STATUS_BUFFER_TOO_SMALL, then the audio driver should read the Information member to get the size of the buffer that the caller should allocate for this request.

Remarks

The audio driver sends this request to obtain information about an enabled GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS device interface. The information does not change while the interface is enabled, but can change while the interface is disabled. Therefore the audio driver sends this request shortly after discovering an enabled device interface and uses the information to build an appropriate KSFILTER_DESCRIPTOR structure.

The audio driver sends this request once with an output buffer size of zero (0) in order to determine the required output buffer size. In this case, the request will complete with Status STATUS_BUFFER_TOO_SMALL and set the Information member to the required buffer size. The audio driver then allocates the necessary storage space and sends the request again. Typically an audio driver will store a pointer to this storage location in its device context for reference during later activity.

Requirements

Requirement Value
Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Header bthhfpddi.h

See also

Bluetooth HFP DDI IOCTLs

IOCTL_BTHHFP_DEVICE_GET_CONTAINERID

IOCTL_BTHHFP_DEVICE_GET_KSNODETYPES