IOCTL_BTH_SDP_ATTRIBUTE_SEARCH IOCTL (bthioctl.h)

The IOCTL_BTH_SDP_ATTRIBUTE_SEARCH request obtains attributes for the specified SDP record.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

The AssociatedIrp.SystemBuffer member contains a BTH_SDP_ATTRIBUTE_SEARCH_REQUEST structure that specifies the remote computer range of attributes to search plus other key members.

Input buffer length

The length of a BTH_SDP_ATTRIBUTE_SEARCH_REQUEST structure.

Output buffer

The AssociatedIrp.SystemBuffer member points to a buffer that contains a BTH_SDP_STREAM_RESPONSE structure that is followed by a variable-length raw SDP stream.

Output buffer length

The length of a BTH_SDP_STREAM_RESPONSE structure.

Status block

If the request is successful, the Information member of the STATUS_BLOCK structure is set to the size, in bytes, of the BTH_SDP_STREAM_RESPONSE or the size of the output buffer, whichever is smaller. Otherwise, the Information member is set to zero.

The Status member is set to one of the values in the following table.

Status value Description
STATUS_SUCCESS The IOCTL completed successfully.
STATUS_DEVICE_NOT_CONNECTED The device on which the SDP service resides was not connected.
STATUS_INSUFFICIENT_RESOURCES There was not enough memory to complete this operation.
STATUS_INVALID_BUFFER_SIZE The output buffer was sized incorrectly.
STATUS_INVALID_PARAMETER One of the values in the input buffer was not valid.
STATUS_REQUEST_NOT_ACCEPTED The SDP service rejected the request.
STATUS_TOO_MANY_GUIDS_REQUESTED The SDP service could not process the number of GUIDs passed in the input buffer.

Remarks

In most circumstances, profile drivers can combine SDP service and attribute searches by calling the IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH IOCTL. If a profile driver must reduce the amount of SDP traffic that is transmitted over the Bluetooth link, or extract information from the SDP server by using a small number of message transfer units (MTUs), the profile driver should call the IOCTL_BTH_SDP_SERVICE_SEARCH IOCTL to perform a service search. The profile driver should then call the IOCTL_BTH_SDP_ATTRIBUTE_SEARCH IOCTL to perform an attribute search.

The BTH_SDP_STREAM_RESPONSE structure returned in the output buffer contains information about the size of the entire SDP record, the size, in bytes, of the raw SDP record stream that follows the BTH_SDP_STREAM_RESPONSE structure, and the first byte of that stream. The variable-length stream is the SDP record attributes returned by the search.

Requirements

Requirement Value
Minimum supported client Versions:_Supported in Windows Vista, and later.
Header bthioctl.h (include Bthioctl.h)
IRQL <= PASSIVE_LEVEL

See also

BTH_SDP_ATTRIBUTE_SEARCH_REQUEST

BTH_SDP_STREAM_RESPONSE

IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH

IOCTL_BTH_SDP_SERVICE_SEARCH