Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

858 lines
40 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. bthdef.h
  5. Abstract:
  6. This module contains the Bluetooth common structures and definitions
  7. Author:
  8. Notes:
  9. Environment:
  10. Kernel mode only
  11. Revision History:
  12. --*/
  13. #ifndef __BTHDEF_H__
  14. #define __BTHDEF_H__
  15. #ifndef GUID_DEFS_ONLY
  16. #ifndef NO_BTHSDPDEF_INC
  17. #include "bthsdpdef.h"
  18. #endif // NO_BTHSDPDEF_INC
  19. #endif // GUID_DEFS_ONLY
  20. #ifndef NO_GUID_DEFS
  21. // {0850302A-B344-4fda-9BE9-90576B8D46F0}
  22. DEFINE_GUID(GUID_BTHPORT_DEVICE_INTERFACE, 0x850302a, 0xb344, 0x4fda, 0x9b, 0xe9, 0x90, 0x57, 0x6b, 0x8d, 0x46, 0xf0);
  23. // {EA3B5B82-26EE-450E-B0D8-D26FE30A3869}
  24. DEFINE_GUID(GUID_BLUETOOTH_RADIO_IN_RANGE, 0xea3b5b82, 0x26ee, 0x450e, 0xb0, 0xd8, 0xd2, 0x6f, 0xe3, 0x0a, 0x38, 0x69);
  25. // {E28867C9-C2AA-4CED-B969-4570866037C4}
  26. DEFINE_GUID(GUID_BLUETOOTH_RADIO_OUT_OF_RANGE, 0xe28867c9, 0xc2aa, 0x4ced, 0xb9, 0x69, 0x45, 0x70, 0x86, 0x60, 0x37, 0xc4);
  27. // BD198B7C-24AB-4B9A-8C0D-A8EA8349AA16
  28. DEFINE_GUID(GUID_BLUETOOTH_PIN_REQUEST, 0xbd198b7c, 0x24ab, 0x4b9a, 0x8c, 0x0d, 0xa8, 0xea, 0x83, 0x49, 0xaa, 0x16);
  29. // {7EAE4030-B709-4AA8-AC55-E953829C9DAA}
  30. DEFINE_GUID(GUID_BLUETOOTH_L2CAP_EVENT, 0x7eae4030, 0xb709, 0x4aa8, 0xac, 0x55, 0xe9, 0x53, 0x82, 0x9c, 0x9d, 0xaa);
  31. // {FC240062-1541-49BE-B463-84C4DCD7BF7F}
  32. DEFINE_GUID(GUID_BLUETOOTH_HCI_EVENT, 0xfc240062, 0x1541, 0x49be, 0xb4, 0x63, 0x84, 0xc4, 0xdc, 0xd7, 0xbf, 0x7f);
  33. //
  34. // Bluetooth base UUID for service discovery
  35. //
  36. DEFINE_GUID(Bluetooth_Base_UUID, 0x00000000, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  37. //
  38. // UUID for the root of the browse group list
  39. //
  40. DEFINE_GUID(SDP_PROTOCOL_UUID, 0x00000001, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  41. DEFINE_GUID(UDP_PROTOCOL_UUID, 0x00000002, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  42. DEFINE_GUID(RFCOMM_PROTOCOL_UUID, 0x00000003, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  43. DEFINE_GUID(TCP_PROTOCOL_UUID, 0x00000004, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  44. DEFINE_GUID(TCSBIN_PROTOCOL_UUID, 0x00000005, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  45. DEFINE_GUID(TCSAT_PROTOCOL_UUID, 0x00000006, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  46. DEFINE_GUID(OBEX_PROTOCOL_UUID, 0x00000008, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  47. DEFINE_GUID(IP_PROTOCOL_UUID, 0x00000009, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  48. DEFINE_GUID(FTP_PROTOCOL_UUID, 0x0000000A, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  49. DEFINE_GUID(HTTP_PROTOCOL_UUID, 0x0000000C, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  50. DEFINE_GUID(WSP_PROTOCOL_UUID, 0x0000000E, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  51. DEFINE_GUID(BNEP_PROTOCOL_UUID, 0x0000000F, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  52. DEFINE_GUID(UPNP_PROTOCOL_UUID, 0x00000010, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  53. DEFINE_GUID(HID_PROTOCOL_UUID, 0x00000011, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  54. DEFINE_GUID(HCCC_PROTOCOL_UUID, 0x00000012, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  55. DEFINE_GUID(HCDC_PROTOCOL_UUID, 0x00000014, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  56. DEFINE_GUID(HN_PROTOCOL_UUID, 0x00000016, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  57. DEFINE_GUID(AVCTP_PROTOCOL_UUID, 0x00000017, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  58. DEFINE_GUID(AVDTP_PROTOCOL_UUID, 0x00000019, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  59. DEFINE_GUID(CMPT_PROTOCOL_UUID, 0x0000001B, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  60. DEFINE_GUID(UDI_C_PLANE_PROTOCOL_UUID, 0x0000001D, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  61. DEFINE_GUID(L2CAP_PROTOCOL_UUID, 0x00000100, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  62. #define SDP_PROTOCOL_UUID16 (0x0001)
  63. #define UDP_PROTOCOL_UUID16 (0x0002)
  64. #define RFCOMM_PROTOCOL_UUID16 (0x0003)
  65. #define TCP_PROTOCOL_UUID16 (0x0004)
  66. #define TCSBIN_PROTOCOL_UUID16 (0x0005)
  67. #define TCSAT_PROTOCOL_UUID16 (0x0006)
  68. #define OBEX_PROTOCOL_UUID16 (0x0008)
  69. #define IP_PROTOCOL_UUID16 (0x0009)
  70. #define FTP_PROTOCOL_UUID16 (0x000A)
  71. #define HTTP_PROTOCOL_UUID16 (0x000C)
  72. #define WSP_PROTOCOL_UUID16 (0x000E)
  73. #define BNEP_PROTOCOL_UUID16 (0x000F)
  74. #define UPNP_PROTOCOL_UUID16 (0x0010)
  75. #define HID_PROTOCOL_UUID16 (0x0011)
  76. #define HCCC_PROTOCOL_UUID16 (0x0012)
  77. #define HCDC_PROTOCOL_UUID16 (0x0014)
  78. #define HCN_PROTOCOL_UUID16 (0x0016)
  79. #define AVCTP_PROTOCOL_UUID16 (0x0017)
  80. #define AVDTP_PROTOCOL_UUID16 (0x0019)
  81. #define CMPT_PROTOCOL_UUID16 (0x001B)
  82. #define UDI_C_PLANE_PROTOCOL_UUID16 (0x001D)
  83. #define L2CAP_PROTOCOL_UUID16 (0x0100)
  84. DEFINE_GUID(ServiceDiscoveryServerServiceClassID_UUID, 0x00001000, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  85. DEFINE_GUID(BrowseGroupDescriptorServiceClassID_UUID, 0x00001001, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  86. DEFINE_GUID(PublicBrowseGroupServiceClass_UUID, 0x00001002, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  87. DEFINE_GUID(SerialPortServiceClass_UUID, 0x00001101, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  88. DEFINE_GUID(LANAccessUsingPPPServiceClass_UUID, 0x00001102, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  89. DEFINE_GUID(DialupNetworkingServiceClass_UUID, 0x00001103, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  90. DEFINE_GUID(IrMCSyncServiceClass_UUID, 0x00001104, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  91. DEFINE_GUID(OBEXObjectPushServiceClass_UUID, 0x00001105, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  92. DEFINE_GUID(OBEXFileTransferServiceClass_UUID, 0x00001106, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  93. DEFINE_GUID(IrMCSyncCommandServiceClass_UUID, 0x00001107, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  94. DEFINE_GUID(HeadsetServiceClass_UUID, 0x00001108, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  95. DEFINE_GUID(CordlessTelephonyServiceClass_UUID, 0x00001109, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  96. DEFINE_GUID(AudioSourceServiceClass_UUID, 0x0000110A, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  97. DEFINE_GUID(AudioSinkServiceClass_UUID, 0x0000110B, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  98. DEFINE_GUID(AVRemoteControlTargetServiceClass_UUID, 0x0000110C, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  99. DEFINE_GUID(AdvancedAudioDistributionServiceClass_UUID,0x0000110D, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  100. DEFINE_GUID(AVRemoteControlServiceClass_UUID, 0x0000110E, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  101. DEFINE_GUID(VideoConferencingServiceClass_UUID, 0x0000110F, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  102. DEFINE_GUID(IntercomServiceClass_UUID, 0x00001110, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  103. DEFINE_GUID(FaxServiceClass_UUID, 0x00001111, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  104. DEFINE_GUID(HeadsetAudioGatewayServiceClass_UUID, 0x00001112, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  105. DEFINE_GUID(WAPServiceClass_UUID, 0x00001113, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  106. DEFINE_GUID(WAPClientServiceClass_UUID, 0x00001114, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  107. DEFINE_GUID(PANUServiceClass_UUID, 0x00001115, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  108. DEFINE_GUID(NAPServiceClass_UUID, 0x00001116, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  109. DEFINE_GUID(GNServiceClass_UUID, 0x00001117, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  110. DEFINE_GUID(DirectPrintingServiceClass_UUID, 0x00001118, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  111. DEFINE_GUID(ReferencePrintingServiceClass_UUID, 0x00001119, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  112. DEFINE_GUID(ImagingServiceClass_UUID, 0x0000111A, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  113. DEFINE_GUID(ImagingResponderServiceClass_UUID, 0x0000111B, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  114. DEFINE_GUID(ImagingAutomaticArchiveServiceClass_UUID, 0x0000111C, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  115. DEFINE_GUID(ImagingReferenceObjectsServiceClass_UUID, 0x0000111D, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  116. DEFINE_GUID(HandsfreeServiceClass_UUID, 0x0000111E, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  117. DEFINE_GUID(HandsfreeAudioGatewayServiceClass_UUID, 0x0000111F, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  118. DEFINE_GUID(DirectPrintingReferenceObjectsServiceClass_UUID,
  119. 0x00001120, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  120. DEFINE_GUID(ReflectedUIServiceClass_UUID, 0x00001121, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  121. DEFINE_GUID(BasicPringingServiceClass_UUID, 0x00001122, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  122. DEFINE_GUID(PrintingStatusServiceClass_UUID, 0x00001123, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  123. DEFINE_GUID(HumanInterfaceDeviceServiceClass_UUID, 0x00001124, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  124. DEFINE_GUID(HardcopyCableReplacementServiceClass_UUID, 0x00001125, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  125. DEFINE_GUID(HCRPrintServiceClass_UUID, 0x00001126, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  126. DEFINE_GUID(HCRScanServiceClass_UUID, 0x00001127, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  127. DEFINE_GUID(CommonISDNAccessServiceClass_UUID, 0x00001128, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  128. DEFINE_GUID(VideoConferencingGWServiceClass_UUID, 0x00001129, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  129. DEFINE_GUID(UDIMTServiceClass_UUID, 0x0000112A, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  130. DEFINE_GUID(UDITAServiceClass_UUID, 0x0000112B, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  131. DEFINE_GUID(AudioVideoServiceClass_UUID, 0x0000112C, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  132. DEFINE_GUID(PnPInformationServiceClass_UUID, 0x00001200, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  133. DEFINE_GUID(GenericNetworkingServiceClass_UUID, 0x00001201, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  134. DEFINE_GUID(GenericFileTransferServiceClass_UUID, 0x00001202, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  135. DEFINE_GUID(GenericAudioServiceClass_UUID, 0x00001203, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  136. DEFINE_GUID(GenericTelephonyServiceClass_UUID, 0x00001204, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB);
  137. #define ServiceDiscoveryServerServiceClassID_UUID16 (0x1000)
  138. #define BrowseGroupDescriptorServiceClassID_UUID16 (0x1001)
  139. #define PublicBrowseGroupServiceClassID_UUID16 (0x1002)
  140. #define SerialPortServiceClassID_UUID16 (0x1101)
  141. #define LANAccessUsingPPPServiceClassID_UUID16 (0x1102)
  142. #define DialupNetworkingServiceClassID_UUID16 (0x1103)
  143. #define IrMCSyncServiceClassID_UUID16 (0x1104)
  144. #define OBEXObjectPushServiceClassID_UUID16 (0x1105)
  145. #define OBEXFileTransferServiceClassID_UUID16 (0x1106)
  146. #define IrMcSyncCommandServiceClassID_UUID16 (0x1107)
  147. #define HeadsetServiceClassID_UUID16 (0x1108)
  148. #define CordlessServiceClassID_UUID16 (0x1109)
  149. #define AudioSourceServiceClassID_UUID16 (0x110A)
  150. #define AudioSinkSourceServiceClassID_UUID16 (0x110B)
  151. #define AVRemoteControlTargetServiceClassID_UUID16 (0x110C)
  152. #define AdvancedAudioDistributionServiceClassID_UUID16 (0x110D)
  153. #define AVRemoteControlServiceClassID_UUID16 (0x110E)
  154. #define VideoConferencingServiceClassID_UUID16 (0x110F)
  155. #define IntercomServiceClassID_UUID16 (0x1110)
  156. #define FaxServiceClassID_UUID16 (0x1111)
  157. #define HeadsetAudioGatewayServiceClassID_UUID16 (0x1112)
  158. #define WAPServiceClassID_UUID16 (0x1113)
  159. #define WAPClientServiceClassID_UUID16 (0x1114)
  160. #define PANUServiceClassID_UUID16 (0x1115)
  161. #define NAPServiceClassID_UUID16 (0x1116)
  162. #define GNServiceClassID_UUID16 (0x1117)
  163. #define DirectPrintingServiceClassID_UUID16 (0x1118)
  164. #define ReferencePrintingServiceClassID_UUID16 (0x1119)
  165. #define ImagingServiceClassID_UUID16 (0x111A)
  166. #define ImagingResponderServiceClassID_UUID16 (0x111B)
  167. #define ImagingAutomaticArchiveServiceClassID_UUID16 (0x111C)
  168. #define ImagingReferenceObjectsServiceClassID_UUID16 (0x111D)
  169. #define HandsfreeServiceClassID_UUID16 (0x111E)
  170. #define HandsfreeAudioGatewayServiceClassID_UUID16 (0x111F)
  171. #define DirectPrintingReferenceObjectsServiceClassID_UUID16 \
  172. (0x1120)
  173. #define ReflectsUIServiceClassID_UUID16 (0x1121)
  174. #define BasicPrintingServiceClassID_UUID16 (0x1122)
  175. #define PrintingStatusServiceClassID_UUID16 (0x1123)
  176. #define HumanInterfaceDeviceServiceClassID_UUID16 (0x1124)
  177. #define HardcopyCableReplacementServiceClassID_UUID16 (0x1125)
  178. #define HCRPrintServiceClassID_UUID16 (0x1126)
  179. #define HCRScanServiceClassID_UUID16 (0x1127)
  180. #define CommonISDNAccessServiceClass_UUID16 (0x1128)
  181. #define VideoConferencingGWServiceClass_UUID16 (0x1129)
  182. #define UDIMTServiceClass_UUID16 (0x112A)
  183. #define UDITAServiceClass_UUID16 (0x112B)
  184. #define AudioVideoServiceClass_UUID16 (0x112C)
  185. #define PnPInformationServiceClassID_UUID16 (0x1200)
  186. #define GenericNetworkingServiceClassID_UUID16 (0x1201)
  187. #define GenericFileTransferServiceClassID_UUID16 (0x1202)
  188. #define GenericAudioServiceClassID_UUID16 (0x1203)
  189. #define GenericTelephonyServiceClassID_UUID16 (0x1204)
  190. #endif // NO_GUID_DEFS
  191. #ifndef GUID_DEFS_ONLY
  192. //
  193. // max length of device friendly name.
  194. //
  195. #define BTH_MAX_NAME_SIZE (248)
  196. #define BTH_MAX_PIN_SIZE (16)
  197. #define BTH_LINK_KEY_LENGTH (16)
  198. #define BTH_MFG_ERICSSON (0)
  199. #define BTH_MFG_NOKIA (1)
  200. #define BTH_MFG_INTEL (2)
  201. #define BTH_MFG_IBM (3)
  202. #define BTH_MFG_TOSHIBA (4)
  203. #define BTH_MFG_3COM (5)
  204. #define BTH_MFG_MICROSOFT (6)
  205. #define BTH_MFG_LUCENT (7)
  206. #define BTH_MFG_MOTOROLA (8)
  207. #define BTH_MFG_INFINEON (9)
  208. #define BTH_MFG_CSR (10)
  209. #define BTH_MFG_SILICONWAVE (11)
  210. #define BTH_MFG_DIGIANSWER (12)
  211. #define BTH_MFG_TI (13)
  212. #define BTH_MFG_PARTHUS (14)
  213. #define BTH_MFG_BROADCOM (15)
  214. #define BTH_MFG_MITEL (16)
  215. #define BTH_MFG_WIDCOMM (17)
  216. #define BTH_MFG_ZEEVO (18)
  217. #define BTH_MFG_ATMEL (19)
  218. #define BTH_MFG_MITSIBUSHI (20)
  219. #define BTH_MFG_RTX_TELECOM (21)
  220. #define BTH_MFG_KC_TECHNOLOGY (22)
  221. #define BTH_MFG_NEWLOGIC (23)
  222. #define BTH_MFG_TRANSILICA (24)
  223. #define BTH_MFG_ROHDE_SCHWARZ (25)
  224. #define BTH_MFG_TTPCOM (26)
  225. #define BTH_MFG_SIGNIA (27)
  226. #define BTH_MFG_CONEXANT (28)
  227. #define BTH_MFG_QUALCOMM (29)
  228. #define BTH_MFG_INVENTEL (30)
  229. #define BTH_MFG_AVM_BERLIN (31)
  230. #define BTH_MFG_BANDSPEED (32)
  231. #define BTH_MFG_MANSELLA (33)
  232. #define BTH_MFG_NEC (34)
  233. #define BTH_MFG_WAVEPLUS_TECHNOLOGY_CO (35)
  234. #define BTH_MFG_ALCATEL (36)
  235. #define BTH_MFG_PHILIPS_SEMICONDUCTOR (37)
  236. #define BTH_MFG_C_TECHNOLOGIES (38)
  237. #define BTH_MFG_OPEN_INTERFACE (39)
  238. #define BTH_MFG_RF_MICRO_DEVICES (40)
  239. #define BTH_MFG_HITACHI (41)
  240. #define BTH_MFG_SYMBOL_TECHNOLOGIES (42)
  241. #define BTH_MFG_TENOVIS (43)
  242. #define BTH_MFG_MACRONIX_INTERNATIONAL (44)
  243. #define BTH_MFG_INTERNAL_USE (65535)
  244. typedef ULONGLONG BTH_ADDR, *PBTH_ADDR;
  245. typedef ULONG BTH_COD, *PBTH_COD;
  246. typedef ULONG BTH_LAP, *PBTH_LAP;
  247. #define BTH_ADDR_NULL ((ULONGLONG) 0x0000000000000000)
  248. #define NAP_MASK ((ULONGLONG) 0xFFFF00000000)
  249. #define SAP_MASK ((ULONGLONG) 0x0000FFFFFFFF)
  250. #define NAP_BIT_OFFSET (8 * 4)
  251. #define SAP_BIT_OFFSET (0)
  252. #define GET_NAP(_bth_addr) ((USHORT) (((_bth_addr) & NAP_MASK) >> NAP_BIT_OFFSET))
  253. #define GET_SAP(_bth_addr) ((ULONG) (((_bth_addr) & SAP_MASK) >> SAP_BIT_OFFSET))
  254. #define SET_NAP(_nap) (((ULONGLONG) ((USHORT) (_nap))) << NAP_BIT_OFFSET)
  255. #define SET_SAP(_sap) (((ULONGLONG) ((ULONG) (_sap))) << SAP_BIT_OFFSET)
  256. #define SET_NAP_SAP(_nap, _sap) (SET_NAP(_nap) | SET_SAP(_sap))
  257. #define COD_FORMAT_BIT_OFFSET (0)
  258. #define COD_MINOR_BIT_OFFSET (2)
  259. #define COD_MAJOR_BIT_OFFSET (8 * 1)
  260. #define COD_SERVICE_BIT_OFFSET (8 * 1 + 5)
  261. #define COD_FORMAT_MASK (0x000003)
  262. #define COD_MINOR_MASK (0x0000FC)
  263. #define COD_MAJOR_MASK (0x001F00)
  264. #define COD_SERVICE_MASK (0xFFE000)
  265. #define GET_COD_FORMAT(_cod) ( (_cod) & COD_FORMAT_MASK >> COD_FORMAT_BIT_OFFSET)
  266. #define GET_COD_MINOR(_cod) (((_cod) & COD_MINOR_MASK) >> COD_MINOR_BIT_OFFSET)
  267. #define GET_COD_MAJOR(_cod) (((_cod) & COD_MAJOR_MASK) >> COD_MAJOR_BIT_OFFSET)
  268. #define GET_COD_SERVICE(_cod) (((_cod) & COD_SERVICE_MASK) >> COD_SERVICE_BIT_OFFSET)
  269. #define SET_COD_MINOR(_cod, _minor) (_cod) = ((_cod) & ~COD_MINOR_MASK) | ((_minor) << COD_MINOR_BIT_OFFSET)
  270. #define SET_COD_MAJOR(_cod, _major) (_cod) = ((_cod) & ~COD_MAJOR_MASK) | ((_major) << COD_MAJOR_BIT_OFFSET)
  271. #define SET_COD_SERVICE(_cod, _service) (_cod) = ((_cod) & ~COD_SERVICE_MASK) | ((_service) << COD_SERVICE_BIT_OFFSET)
  272. #define COD_VERSION (0x0)
  273. #define COD_SERVICE_LIMITED (0x0001)
  274. #define COD_SERVICE_POSITIONING (0x0008)
  275. #define COD_SERVICE_NETWORKING (0x0010)
  276. #define COD_SERVICE_RENDERING (0x0020)
  277. #define COD_SERVICE_CAPTURING (0x0040)
  278. #define COD_SERVICE_OBJECT_XFER (0x0080)
  279. #define COD_SERVICE_AUDIO (0x0100)
  280. #define COD_SERVICE_TELEPHONY (0x0200)
  281. #define COD_SERVICE_INFORMATION (0x0400)
  282. #define COD_SERVICE_VALID_MASK (COD_SERVICE_LIMITED | \
  283. COD_SERVICE_POSITIONING | \
  284. COD_SERVICE_NETWORKING | \
  285. COD_SERVICE_RENDERING | \
  286. COD_SERVICE_CAPTURING | \
  287. COD_SERVICE_OBJECT_XFER |\
  288. COD_SERVICE_AUDIO |\
  289. COD_SERVICE_TELEPHONY |\
  290. COD_SERVICE_INFORMATION)
  291. #define COD_SERVICE_MAX_COUNT (9)
  292. //
  293. // Major class codes
  294. //
  295. #define COD_MAJOR_MISCELLANEOUS (0x00)
  296. #define COD_MAJOR_COMPUTER (0x01)
  297. #define COD_MAJOR_PHONE (0x02)
  298. #define COD_MAJOR_LAN_ACCESS (0x03)
  299. #define COD_MAJOR_AUDIO (0x04)
  300. #define COD_MAJOR_PERIPHERAL (0x05)
  301. #define COD_MAJOR_IMAGING (0x06)
  302. #define COD_MAJOR_UNCLASSIFIED (0x1F)
  303. //
  304. // Minor class codes specific to each major class
  305. //
  306. #define COD_COMPUTER_MINOR_UNCLASSIFIED (0x00)
  307. #define COD_COMPUTER_MINOR_DESKTOP (0x01)
  308. #define COD_COMPUTER_MINOR_SERVER (0x02)
  309. #define COD_COMPUTER_MINOR_LAPTOP (0x03)
  310. #define COD_COMPUTER_MINOR_HANDHELD (0x04)
  311. #define COD_COMPUTER_MINOR_PALM (0x05)
  312. #define COD_COMPUTER_MINOR_WEARABLE (0x06)
  313. #define COD_PHONE_MINOR_UNCLASSIFIED (0x00)
  314. #define COD_PHONE_MINOR_CELLULAR (0x01)
  315. #define COD_PHONE_MINOR_CORDLESS (0x02)
  316. #define COD_PHONE_MINOR_SMART (0x03)
  317. #define COD_PHONE_MINOR_WIRED_MODEM (0x04)
  318. #define COD_AUDIO_MINOR_UNCLASSIFIED (0x00)
  319. #define COD_AUDIO_MINOR_HEADSET (0x01)
  320. #define COD_AUDIO_MINOR_HANDS_FREE (0x02)
  321. #define COD_AUDIO_MINOR_HEADSET_HANDS_FREE (0x03)
  322. #define COD_AUDIO_MINOR_MICROPHONE (0x04)
  323. #define COD_AUDIO_MINOR_LOUDSPEAKER (0x05)
  324. #define COD_AUDIO_MINOR_HEADPHONES (0x06)
  325. #define COD_AUDIO_MINOR_PORTABLE_AUDIO (0x07)
  326. #define COD_AUDIO_MINOR_CAR_AUDIO (0x08)
  327. #define COD_AUDIO_MINOR_SET_TOP_BOX (0x09)
  328. #define COD_AUDIO_MINOR_HIFI_AUDIO (0x0A)
  329. #define COD_AUDIO_MINOR_VCR (0x0B)
  330. #define COD_AUDIO_MINOR_VIDEO_CAMERA (0x0C)
  331. #define COD_AUDIO_MINOR_CAMCORDER (0x0D)
  332. #define COD_AUDIO_MINOR_VIDEO_MONITOR (0x0E)
  333. #define COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER \
  334. (0x0F)
  335. #define COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING \
  336. (0x10)
  337. // #define COD_AUDIO_MINOR_RESERVED (0x11)
  338. #define COD_AUDIO_MINOR_GAMING_TOY (0x12)
  339. #define COD_PERIPHERAL_MINOR_KEYBOARD_MASK (0x10)
  340. #define COD_PERIPHERAL_MINOR_POINTER_MASK (0x20)
  341. #define COD_PERIPHERAL_MINOR_NO_CATEGORY (0x00)
  342. #define COD_PERIPHERAL_MINOR_JOYSTICK (0x01)
  343. #define COD_PERIPHERAL_MINOR_GAMEPAD (0x02)
  344. #define COD_PERIPHERAL_MINOR_REMOTE_CONTROL (0x03)
  345. #define COD_PERIPHERAL_MINOR_SENSING (0x04)
  346. #define COD_IMAGING_MINOR_DISPLAY_MASK (0x04)
  347. #define COD_IMAGING_MINOR_CAMERA_MASK (0x08)
  348. #define COD_IMAGING_MINOR_SCANNER_MASK (0x10)
  349. #define COD_IMAGING_MINOR_PRINTER_MASK (0x20)
  350. //
  351. // Cannot use GET_COD_MINOR for this b/c it is embedded in a different manner
  352. // than the rest of the major classes
  353. //
  354. #define COD_LAN_ACCESS_BIT_OFFSET (5)
  355. #define COD_LAN_MINOR_MASK (0x00001C)
  356. #define COD_LAN_ACCESS_MASK (0x0000E0)
  357. #define GET_COD_LAN_MINOR(_cod) (((_cod) & COD_LAN_MINOR_MASK) >> COD_MINOR_BIT_OFFSET)
  358. #define GET_COD_LAN_ACCESS(_cod) (((_cod) & COD_LAN_ACCESS_MASK) >> COD_LAN_ACCESS_BIT_OFFSET)
  359. //
  360. // LAN access percent usage subcodes
  361. //
  362. #define COD_LAN_MINOR_UNCLASSIFIED (0x00)
  363. #define COD_LAN_ACCESS_0_USED (0x00)
  364. #define COD_LAN_ACCESS_17_USED (0x01)
  365. #define COD_LAN_ACCESS_33_USED (0x02)
  366. #define COD_LAN_ACCESS_50_USED (0x03)
  367. #define COD_LAN_ACCESS_67_USED (0x04)
  368. #define COD_LAN_ACCESS_83_USED (0x05)
  369. #define COD_LAN_ACCESS_99_USED (0x06)
  370. #define COD_LAN_ACCESS_FULL (0x07)
  371. //
  372. // Used as an initializer of LAP_DATA
  373. //
  374. #define LAP_GIAC_INIT { 0x33, 0x8B, 0x9E }
  375. #define LAP_LIAC_INIT { 0x00, 0x8B, 0x9E }
  376. //
  377. // General Inquiry Access Code.
  378. //
  379. #define LAP_GIAC_VALUE (0x009E8B33)
  380. //
  381. // Limited Inquiry Access Code.
  382. //
  383. #define LAP_LIAC_VALUE (0x009E8B00)
  384. #define BTH_ADDR_IAC_FIRST (0x9E8B00)
  385. #define BTH_ADDR_IAC_LAST (0x9E8B3f)
  386. #define BTH_ADDR_LIAC (0x9E8B00)
  387. #define BTH_ADDR_GIAC (0x9E8B33)
  388. typedef UCHAR BTHSTATUS, *PBTHSTATUS;
  389. #define BTH_ERROR(_btStatus) ((_btStatus) != BTH_ERROR_SUCCESS)
  390. #define BTH_SUCCESS(_btStatus) ((_btStatus) == BTH_ERROR_SUCCESS)
  391. #define BTH_ERROR_SUCCESS (0x00)
  392. #define BTH_ERROR_UNKNOWN_HCI_COMMAND (0x01)
  393. #define BTH_ERROR_NO_CONNECTION (0x02)
  394. #define BTH_ERROR_HARDWARE_FAILURE (0x03)
  395. #define BTH_ERROR_PAGE_TIMEOUT (0x04)
  396. #define BTH_ERROR_AUTHENTICATION_FAILURE (0x05)
  397. #define BTH_ERROR_KEY_MISSING (0x06)
  398. #define BTH_ERROR_MEMORY_FULL (0x07)
  399. #define BTH_ERROR_CONNECTION_TIMEOUT (0x08)
  400. #define BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS (0x09)
  401. #define BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS (0x0a)
  402. #define BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS (0x0b)
  403. #define BTH_ERROR_COMMAND_DISALLOWED (0x0c)
  404. #define BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES (0x0d)
  405. #define BTH_ERROR_HOST_REJECTED_SECURITY_REASONS (0x0e)
  406. #define BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE (0x0f)
  407. #define BTH_ERROR_HOST_TIMEOUT (0x10)
  408. #define BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER (0x11)
  409. #define BTH_ERROR_INVALID_HCI_PARAMETER (0x12)
  410. #define BTH_ERROR_REMOTE_USER_ENDED_CONNECTION (0x13)
  411. #define BTH_ERROR_REMOTE_LOW_RESOURCES (0x14)
  412. #define BTH_ERROR_REMOTE_POWERING_OFF (0x15)
  413. #define BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION (0x16)
  414. #define BTH_ERROR_REPEATED_ATTEMPTS (0x17)
  415. #define BTH_ERROR_PAIRING_NOT_ALLOWED (0x18)
  416. #define BTH_ERROR_UKNOWN_LMP_PDU (0x19)
  417. #define BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE (0x1a)
  418. #define BTH_ERROR_SCO_OFFSET_REJECTED (0x1b)
  419. #define BTH_ERROR_SCO_INTERVAL_REJECTED (0x1c)
  420. #define BTH_ERROR_SCO_AIRMODE_REJECTED (0x1d)
  421. #define BTH_ERROR_INVALID_LMP_PARAMETERS (0x1e)
  422. #define BTH_ERROR_UNSPECIFIED_ERROR (0x1f)
  423. #define BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE (0x20)
  424. #define BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED (0x21)
  425. #define BTH_ERROR_LMP_RESPONSE_TIMEOUT (0x22)
  426. #define BTH_ERROR_LMP_TRANSACTION_COLLISION (0x23)
  427. #define BTH_ERROR_LMP_PDU_NOT_ALLOWED (0x24)
  428. #define BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE (0x25)
  429. #define BTH_ERROR_UNIT_KEY_NOT_USED (0x26)
  430. #define BTH_ERROR_QOS_IS_NOT_SUPPORTED (0x27)
  431. #define BTH_ERROR_INSTANT_PASSED (0x28)
  432. #define BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED (0x29)
  433. #define BTH_ERROR_UNSPECIFIED (0xFF)
  434. //
  435. // Min, max, and default L2cap MTU.
  436. //
  437. #define L2CAP_MIN_MTU (48)
  438. #define L2CAP_MAX_MTU (0xFFFF)
  439. #define L2CAP_DEFAULT_MTU (672)
  440. //
  441. // Max l2cap signal size (48) - size of signal header (4)
  442. //
  443. #define MAX_L2CAP_PING_DATA_LENGTH (44)
  444. #define MAX_L2CAP_INFO_DATA_LENGTH (44)
  445. //
  446. // the following two structures provides information about
  447. // disocvered remote radios.
  448. //
  449. #define BDIF_ADDRESS (0x00000001)
  450. #define BDIF_COD (0x00000002)
  451. #define BDIF_NAME (0x00000004)
  452. #define BDIF_PAIRED (0x00000008)
  453. #define BDIF_PERSONAL (0x00000010)
  454. #define BDIF_CONNECTED (0x00000020)
  455. #define BDIF_VALID_FLAGS \
  456. (BDIF_ADDRESS | BDIF_COD | BDIF_NAME | BDIF_PAIRED | BDIF_PERSONAL | \
  457. BDIF_CONNECTED)
  458. typedef struct _BTH_DEVICE_INFO {
  459. //
  460. // Combination BDIF_Xxx flags
  461. //
  462. ULONG flags;
  463. //
  464. // Address of remote device.
  465. //
  466. BTH_ADDR address;
  467. //
  468. // Class Of Device.
  469. //
  470. BTH_COD classOfDevice;
  471. //
  472. // name of the device
  473. //
  474. CHAR name[BTH_MAX_NAME_SIZE];
  475. } BTH_DEVICE_INFO, *PBTH_DEVICE_INFO;
  476. //
  477. // Buffer associated with GUID_BLUETOOTH_RADIO_IN_RANGE
  478. //
  479. typedef struct _BTH_RADIO_IN_RANGE {
  480. //
  481. // Information about the remote radio
  482. //
  483. BTH_DEVICE_INFO deviceInfo;
  484. //
  485. // The previous flags value for the BTH_DEVICE_INFO. The receiver of this
  486. // notification can compare the deviceInfo.flags and previousDeviceFlags
  487. // to determine what has changed about this remote radio.
  488. //
  489. // For instance, if BDIF_NAME is set in deviceInfo.flags and not in
  490. // previousDeviceFlags, the remote radio's has just been retrieved.
  491. //
  492. ULONG previousDeviceFlags;
  493. } BTH_RADIO_IN_RANGE, *PBTH_RADIO_IN_RANGE;
  494. //
  495. // Buffer associated with GUID_BLUETOOTH_L2CAP_EVENT
  496. //
  497. typedef struct _BTH_L2CAP_EVENT_INFO {
  498. //
  499. // Remote radio address which the L2CAP event is associated with
  500. //
  501. BTH_ADDR bthAddress;
  502. //
  503. // The PSM that is either being connected to or disconnected from
  504. //
  505. USHORT psm;
  506. //
  507. // If != 0, then the channel has just been established. If == 0, then the
  508. // channel has been destroyed. Notifications for a destroyed channel will
  509. // only be sent for channels successfully established.
  510. //
  511. UCHAR connected;
  512. //
  513. // If != 0, then the local host iniated the l2cap connection. If == 0, then
  514. // the remote host initated the connection. This field is only valid if
  515. // connect is != 0.
  516. //
  517. UCHAR initiated;
  518. } BTH_L2CAP_EVENT_INFO, *PBTH_L2CAP_EVENT_INFO;
  519. #define HCI_CONNNECTION_TYPE_ACL (1)
  520. #define HCI_CONNNECTION_TYPE_SCO (2)
  521. //
  522. // Buffer associated with GUID_BLUETOOTH_HCI_EVENT
  523. //
  524. typedef struct _BTH_HCI_EVENT_INFO {
  525. //
  526. // Remote radio address which the HCI event is associated with
  527. //
  528. BTH_ADDR bthAddress;
  529. //
  530. // HCI_CONNNECTION_TYPE_XXX value
  531. //
  532. UCHAR connectionType;
  533. //
  534. // If != 0, then the underlying connection to the remote radio has just
  535. // been estrablished. If == 0, then the underlying conneciton has just been
  536. // destroyed.
  537. //
  538. UCHAR connected;
  539. } BTH_HCI_EVENT_INFO, *PBTH_HCI_EVENT_INFO;
  540. #define MAX_UUIDS_IN_QUERY (12)
  541. #define BTH_VID_DEFAULT_VALUE (0xFFFF)
  542. #define SDP_ERROR_INVALID_SDP_VERSION (0x0001)
  543. #define SDP_ERROR_INVALID_RECORD_HANDLE (0x0002)
  544. #define SDP_ERROR_INVALID_REQUEST_SYNTAX (0x0003)
  545. #define SDP_ERROR_INVALID_PDU_SIZE (0x0004)
  546. #define SDP_ERROR_INVALID_CONTINUATION_STATE (0x0005)
  547. #define SDP_ERROR_INSUFFICIENT_RESOURCES (0x0006)
  548. //
  549. // Defined by windows to handle server errors that are not described by the
  550. // above errors. Start at 0x0100 so we don't go anywhere near the spec
  551. // defined values.
  552. //
  553. //
  554. // Success, nothing went wrong
  555. //
  556. #define SDP_ERROR_SUCCESS ((SDP_ERROR) 0x0000)
  557. //
  558. // The SDP PDU or parameters other than the SDP stream response was not correct
  559. //
  560. #define SDP_ERROR_SERVER_INVALID_RESPONSE ((SDP_ERROR) 0x0100)
  561. //
  562. // The SDP response stream did not parse correctly.
  563. //
  564. #define SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE ((SDP_ERROR) 0x0200)
  565. //
  566. // The SDP response stream was successfully parsed, but did not match the
  567. // required format for the query.
  568. //
  569. #define SDP_ERROR_SERVER_BAD_FORMAT ((SDP_ERROR) 0x0300)
  570. //
  571. // SDP was unable to send a continued query back to the server
  572. //
  573. #define SDP_ERROR_COULD_NOT_SEND_CONTINUE ((SDP_ERROR) 0x0400)
  574. //
  575. // Server sent a response that was too large to fit in the caller's buffer.
  576. //
  577. #define SDP_ERROR_RESPONSE_TOO_LARGE ((SDP_ERROR) 0x0500)
  578. #define SDP_ATTRIB_RECORD_HANDLE (0x0000)
  579. #define SDP_ATTRIB_CLASS_ID_LIST (0x0001)
  580. #define SDP_ATTRIB_RECORD_STATE (0x0002)
  581. #define SDP_ATTRIB_SERVICE_ID (0x0003)
  582. #define SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST (0x0004)
  583. #define SDP_ATTRIB_BROWSE_GROUP_LIST (0x0005)
  584. #define SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST (0x0006)
  585. #define SDP_ATTRIB_INFO_TIME_TO_LIVE (0x0007)
  586. #define SDP_ATTRIB_AVAILABILITY (0x0008)
  587. #define SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST (0x0009)
  588. #define SDP_ATTRIB_DOCUMENTATION_URL (0x000A)
  589. #define SDP_ATTRIB_CLIENT_EXECUTABLE_URL (0x000B)
  590. #define SDP_ATTRIB_ICON_URL (0x000C)
  591. #define SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST \
  592. (0x000D)
  593. //
  594. // Attribute IDs in the range of 0x000D - 0x01FF are reserved for future use
  595. //
  596. #define SDP_ATTRIB_PROFILE_SPECIFIC (0x0200)
  597. #define LANG_BASE_LANGUAGE_INDEX (0x0000)
  598. #define LANG_BASE_ENCODING_INDEX (0x0001)
  599. #define LANG_BASE_OFFSET_INDEX (0x0002)
  600. #define LANG_DEFAULT_ID (0x0100)
  601. #define STRING_NAME_OFFSET (0x0000)
  602. #define STRING_DESCRIPTION_OFFSET (0x0001)
  603. #define STRING_PROVIDER_NAME_OFFSET (0x0002)
  604. #define SDP_ATTRIB_SDP_VERSION_NUMBER_LIST (0x0200)
  605. #define SDP_ATTRIB_SDP_DATABASE_STATE (0x0201)
  606. #define SDP_ATTRIB_BROWSE_GROUP_ID (0x0200)
  607. #define SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK (0x0301)
  608. #define SDP_ATTRIB_FAX_CLASS_1_SUPPORT (0x0302)
  609. #define SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT (0x0303)
  610. #define SDP_ATTRIB_FAX_CLASS_2_SUPPORT (0x0304)
  611. #define SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT (0x0305)
  612. #define SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL (0x0302)
  613. #define SDP_ATTRIB_LAN_LPSUBNET (0x0200)
  614. #define SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST (0x0303)
  615. #define SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST (0x0301)
  616. // this is in the assigned numbers doc, but it does not show up in any profile
  617. #define SDP_ATTRIB_SERVICE_VERSION (0x0300)
  618. #define SDP_ATTRIB_PAN_NETWORK_ADDRESS (0x0306)
  619. #define SDP_ATTRIB_PAN_WAP_GATEWAY (0x0307)
  620. #define SDP_ATTRIB_PAN_HOME_PAGE_URL (0x0308)
  621. #define SDP_ATTRIB_PAN_WAP_STACK_TYPE (0x0309)
  622. #define SDP_ATTRIB_PAN_SECURITY_DESCRIPTION (0x030A)
  623. #define SDP_ATTRIB_PAN_NET_ACCESS_TYPE (0x030B)
  624. #define SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE (0x030C)
  625. #define SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES (0x0310)
  626. #define SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES (0x0311)
  627. #define SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS (0x0312)
  628. #define SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY (0x0313)
  629. #define SDP_ATTRIB_DI_SPECIFICATION_ID (0x0200)
  630. #define SDP_ATTRIB_DI_VENDOR_ID (0x0201)
  631. #define SDP_ATTRIB_DI_PRODUCT_ID (0x0202)
  632. #define SDP_ATTRIB_DI_VERSION (0x0203)
  633. #define SDP_ATTRIB_DI_PRIMARY_RECORD (0x0204)
  634. #define SDP_ATTRIB_DI_VENDOR_ID_SOURCE (0x0205)
  635. #define SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER (0x0200)
  636. #define SDP_ATTRIB_HID_PARSER_VERSION (0x0201)
  637. #define SDP_ATTRIB_HID_DEVICE_SUBCLASS (0x0202)
  638. #define SDP_ATTRIB_HID_COUNTRY_CODE (0x0203)
  639. #define SDP_ATTRIB_HID_VIRTUAL_CABLE (0x0204)
  640. #define SDP_ATTRIB_HID_RECONNECT_INITIATE (0x0205)
  641. #define SDP_ATTRIB_HID_DESCRIPTOR_LIST (0x0206)
  642. #define SDP_ATTRIB_HID_LANG_ID_BASE_LIST (0x0207)
  643. #define SDP_ATTRIB_HID_SDP_DISABLE (0x0208)
  644. #define SDP_ATTRIB_HID_BATTERY_POWER (0x0209)
  645. #define SDP_ATTRIB_HID_REMOTE_WAKE (0x020A)
  646. #define SDP_ATTRIB_HID_REPORT_LIST (0x020B)
  647. #define SDP_ATTRIB_HID_SUPERVISION_TIMEOUT (0x020C)
  648. #define SDP_ATTRIB_HID_NORMALLY_CONNECTABLE (0x020D)
  649. #define SDP_ATTRIB_HID_BOOT_DEVICE (0x020E)
  650. //
  651. // Profile specific values
  652. //
  653. #define CORDLESS_EXTERNAL_NETWORK_PSTN (0x01)
  654. #define CORDLESS_EXTERNAL_NETWORK_ISDN (0x02)
  655. #define CORDLESS_EXTERNAL_NETWORK_GSM (0x03)
  656. #define CORDLESS_EXTERNAL_NETWORK_CDMA (0x04)
  657. #define CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR (0x05)
  658. #define CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED (0x06)
  659. #define CORDLESS_EXTERNAL_NETWORK_OTHER (0x07)
  660. #define OBJECT_PUSH_FORMAT_VCARD_2_1 (0x01)
  661. #define OBJECT_PUSH_FORMAT_VCARD_3_0 (0x02)
  662. #define OBJECT_PUSH_FORMAT_VCAL_1_0 (0x03)
  663. #define OBJECT_PUSH_FORMAT_ICAL_2_0 (0x04)
  664. #define OBJECT_PUSH_FORMAT_VNOTE (0x05)
  665. #define OBJECT_PUSH_FORMAT_VMESSAGE (0x06)
  666. #define OBJECT_PUSH_FORMAT_ANY (0xFF)
  667. #define SYNCH_DATA_STORE_PHONEBOOK (0x01)
  668. #define SYNCH_DATA_STORE_CALENDAR (0x03)
  669. #define SYNCH_DATA_STORE_NOTES (0x05)
  670. #define SYNCH_DATA_STORE_MESSAGES (0x06)
  671. #define DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG (0x0001)
  672. #define DI_VENDOR_ID_SOURCE_USB_IF (0x0002)
  673. #define PSM_SDP (0x0001)
  674. #define PSM_RFCOMM (0x0003)
  675. #define PSM_TCS_BIN (0x0005)
  676. #define PSM_TCS_BIN_CORDLESS (0x0007)
  677. #define PSM_BNEP (0x000F)
  678. #define PSM_HID_CONTROL (0x0011)
  679. #define PSM_HID_INTERRUPT (0x0013)
  680. #define PSM_AVCTP (0x0017)
  681. #define PSM_AVDTP (0x0019)
  682. #define PSM_UDI_C_PLANE (0x001D)
  683. //
  684. // Strings
  685. //
  686. #define STR_ADDR_FMTA "(%02x:%02x:%02x:%02x:%02x:%02x)"
  687. #define STR_ADDR_FMTW L"(%02x:%02x:%02x:%02x:%02x:%02x)"
  688. #define STR_ADDR_SHORT_FMTA "%04x%08x"
  689. #define STR_ADDR_SHORT_FMTW L"%04x%08x"
  690. #if defined(UNICODE) || defined(BTH_KERN)
  691. #define STR_ADDR_FMT STR_ADDR_FMTW
  692. #define STR_ADDR_SHORT_FMT STR_ADDR_SHORT_FMTW
  693. #else // UNICODE
  694. #define STR_ADDR_FMT STR_ADDR_FMTA
  695. #define STR_ADDR_SHORT_FMT STR_ADDR_SHORT_FMTA
  696. #endif // UNICODE
  697. #define GET_BITS(field,offset,mask) ( ( (field) >> (offset) ) & (mask) )
  698. #define GET_BIT(field,offset) ( GET_BITS(field,offset,0x1) )
  699. #define LMP_3_SLOT_PACKETS(x) (GET_BIT(x, 0))
  700. #define LMP_5_SLOT_PACKETS(x) (GET_BIT(x, 1))
  701. #define LMP_ENCRYPTION(x) (GET_BIT(x, 2))
  702. #define LMP_SLOT_OFFSET(x) (GET_BIT(x, 3))
  703. #define LMP_TIMING_ACCURACY(x) (GET_BIT(x, 4))
  704. #define LMP_SWITCH(x) (GET_BIT(x, 5))
  705. #define LMP_HOLD_MODE(x) (GET_BIT(x, 6))
  706. #define LMP_SNIFF_MODE(x) (GET_BIT(x, 7))
  707. #define LMP_PARK_MODE(x) (GET_BIT(x, 8))
  708. #define LMP_RSSI(x) (GET_BIT(x, 9))
  709. #define LMP_CHANNEL_QUALITY_DRIVEN_MODE(x) (GET_BIT(x,10))
  710. #define LMP_SCO_LINK(x) (GET_BIT(x,11))
  711. #define LMP_HV2_PACKETS(x) (GET_BIT(x,12))
  712. #define LMP_HV3_PACKETS(x) (GET_BIT(x,13))
  713. #define LMP_MU_LAW_LOG(x) (GET_BIT(x,14))
  714. #define LMP_A_LAW_LOG(x) (GET_BIT(x,15))
  715. #define LMP_CVSD(x) (GET_BIT(x,16))
  716. #define LMP_PAGING_SCHEME(x) (GET_BIT(x,17))
  717. #define LMP_POWER_CONTROL(x) (GET_BIT(x,18))
  718. #define LMP_TRANSPARENT_SCO_DATA(x) (GET_BIT(x,19))
  719. #define LMP_FLOW_CONTROL_LAG(x) (GET_BITS(x,20,0x3))
  720. #endif // GUID_DEFS_ONLY
  721. #endif // __BTHDEF_H__