The IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH request combines an SDP service and attribute search into a single operation. This allows a caller to directly obtain SDP records from a remote device.
The AssociatedIrp.SystemBuffer member contains an IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH structure that specifies the connection handle to the remote SDP server, an array of GUIDs, and the range of attribute values to search for.
Input Buffer Length
The length of an IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH structure.
The AssociatedIrp.SystemBuffer member points to a buffer that holds a BTH_SDP_STREAM_RESPONSE structure followed by a raw SDP record stream.
Output Buffer Length
The length of a BTH_SDP_STREAM_RESPONSE structure.
If the request is successful, the Information member of the STATUS_BLOCK structure is set to the size, in bytes, of the SDP response stream 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_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.|
After a profile driver obtains an SDP record, it can use SDP functions to parse them. Pointers to these functions are provided by the BTHDDI_SDP_PARSE_INTERFACE interface.
|Windows version||Versions:_Supported in Windows Vista, and later.|
|Header||bthioctl.h (include Bthioctl.h)|