#++ # #Copyright (c) 2000 Microsoft Corporation # #Module Name: # # bthdef.h # #Abstract: # # This module contains the Bluetooth common structures and definitions # #Author: # #Notes: # #Environment: # # Kernel mode only # # #Revision History: # # -- import ms_bthsdpdef template DEFINE_GUID*(name: expr; p1: int32; p2, p3: int16; p41, p42, p43, p44, p45, p46, p47, p48: int8): stmt {.immediate.} = const name* = GUID(D1: int32(p1), D2: int16(p2), D3: int16(p3), D4: [int8(p41), int8(p42), int8(p43), int8(p44), int8(p45), int8(p46), int8(p47), int8(p48)]) # # Bluetooth 2.1 support added in KB942567 # # {0850302A-B344-4fda-9BE9-90576B8D46F0} DEFINE_GUID(GUID_BTHPORT_DEVICE_INTERFACE, 0x0850302A, 0x0000B344, 0x00004FDA, 0x0000009B, 0x000000E9, 0x00000090, 0x00000057, 0x0000006B, 0x0000008D, 0x00000046, 0x000000F0) # RFCOMM device interface GUID for RFCOMM services # {b142fc3e-fa4e-460b-8abc-072b628b3c70} DEFINE_GUID(GUID_BTH_RFCOMM_SERVICE_DEVICE_INTERFACE, 0xB142FC3E, 0x0000FA4E, 0x0000460B, 0x0000008A, 0x000000BC, 0x00000007, 0x0000002B, 0x00000062, 0x0000008B, 0x0000003C, 0x00000070) # {EA3B5B82-26EE-450E-B0D8-D26FE30A3869} DEFINE_GUID(GUID_BLUETOOTH_RADIO_IN_RANGE, 0xEA3B5B82, 0x000026EE, 0x0000450E, 0x000000B0, 0x000000D8, 0x000000D2, 0x0000006F, 0x000000E3, 0x0000000A, 0x00000038, 0x00000069) # {E28867C9-C2AA-4CED-B969-4570866037C4} DEFINE_GUID(GUID_BLUETOOTH_RADIO_OUT_OF_RANGE, 0xE28867C9, 0x0000C2AA, 0x00004CED, 0x000000B9, 0x00000069, 0x00000045, 0x00000070, 0x00000086, 0x00000060, 0x00000037, 0x000000C4) # {7EAE4030-B709-4AA8-AC55-E953829C9DAA} DEFINE_GUID(GUID_BLUETOOTH_L2CAP_EVENT, 0x7EAE4030, 0x0000B709, 0x00004AA8, 0x000000AC, 0x00000055, 0x000000E9, 0x00000053, 0x00000082, 0x0000009C, 0x0000009D, 0x000000AA) # {FC240062-1541-49BE-B463-84C4DCD7BF7F} DEFINE_GUID(GUID_BLUETOOTH_HCI_EVENT, 0xFC240062, 0x00001541, 0x000049BE, 0x000000B4, 0x00000063, 0x00000084, 0x000000C4, 0x000000DC, 0x000000D7, 0x000000BF, 0x0000007F) # # Support added in KB942567 # # {5DC9136D-996C-46DB-84F5-32C0A3F47352} DEFINE_GUID(GUID_BLUETOOTH_AUTHENTICATION_REQUEST, 0x5DC9136D, 0x0000996C, 0x000046DB, 0x00000084, 0x000000F5, 0x00000032, 0x000000C0, 0x000000A3, 0x000000F4, 0x00000073, 0x00000052) # {D668DFCD-0F4E-4EFC-BFE0-392EEEC5109C} DEFINE_GUID(GUID_BLUETOOTH_KEYPRESS_EVENT, 0xD668DFCD, 0x00000F4E, 0x00004EFC, 0x000000BF, 0x000000E0, 0x00000039, 0x0000002E, 0x000000EE, 0x000000C5, 0x00000010, 0x0000009C) # {547247e6-45bb-4c33-af8c-c00efe15a71d} DEFINE_GUID(GUID_BLUETOOTH_HCI_VENDOR_EVENT, 0x547247E6, 0x000045BB, 0x00004C33, 0x000000AF, 0x0000008C, 0x000000C0, 0x0000000E, 0x000000FE, 0x00000015, 0x000000A7, 0x0000001D) # # Bluetooth base UUID for service discovery # DEFINE_GUID(Bluetooth_Base_UUID, 0x00000000, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) # # UUID for the root of the browse group list # DEFINE_GUID(SDP_PROTOCOL_UUID, 0x00000001, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UDP_PROTOCOL_UUID, 0x00000002, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(RFCOMM_PROTOCOL_UUID, 0x00000003, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(TCP_PROTOCOL_UUID, 0x00000004, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(TCSBIN_PROTOCOL_UUID, 0x00000005, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(TCSAT_PROTOCOL_UUID, 0x00000006, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(OBEX_PROTOCOL_UUID, 0x00000008, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(IP_PROTOCOL_UUID, 0x00000009, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(FTP_PROTOCOL_UUID, 0x0000000A, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HTTP_PROTOCOL_UUID, 0x0000000C, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(WSP_PROTOCOL_UUID, 0x0000000E, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(BNEP_PROTOCOL_UUID, 0x0000000F, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UPNP_PROTOCOL_UUID, 0x00000010, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HID_PROTOCOL_UUID, 0x00000011, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HCCC_PROTOCOL_UUID, 0x00000012, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HCDC_PROTOCOL_UUID, 0x00000014, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HN_PROTOCOL_UUID, 0x00000016, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AVCTP_PROTOCOL_UUID, 0x00000017, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AVDTP_PROTOCOL_UUID, 0x00000019, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(CMPT_PROTOCOL_UUID, 0x0000001B, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UDI_C_PLANE_PROTOCOL_UUID, 0x0000001D, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(L2CAP_PROTOCOL_UUID, 0x00000100, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) const SDP_PROTOCOL_UUID16* = (0x00000001) UDP_PROTOCOL_UUID16* = (0x00000002) RFCOMM_PROTOCOL_UUID16* = (0x00000003) TCP_PROTOCOL_UUID16* = (0x00000004) TCSBIN_PROTOCOL_UUID16* = (0x00000005) TCSAT_PROTOCOL_UUID16* = (0x00000006) OBEX_PROTOCOL_UUID16* = (0x00000008) IP_PROTOCOL_UUID16* = (0x00000009) FTP_PROTOCOL_UUID16* = (0x0000000A) HTTP_PROTOCOL_UUID16* = (0x0000000C) WSP_PROTOCOL_UUID16* = (0x0000000E) BNEP_PROTOCOL_UUID16* = (0x0000000F) UPNP_PROTOCOL_UUID16* = (0x00000010) HID_PROTOCOL_UUID16* = (0x00000011) HCCC_PROTOCOL_UUID16* = (0x00000012) HCDC_PROTOCOL_UUID16* = (0x00000014) HCN_PROTOCOL_UUID16* = (0x00000016) AVCTP_PROTOCOL_UUID16* = (0x00000017) AVDTP_PROTOCOL_UUID16* = (0x00000019) CMPT_PROTOCOL_UUID16* = (0x0000001B) UDI_C_PLANE_PROTOCOL_UUID16* = (0x0000001D) L2CAP_PROTOCOL_UUID16* = (0x00000100) DEFINE_GUID(ServiceDiscoveryServerServiceClassID_UUID, 0x00001000, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(BrowseGroupDescriptorServiceClassID_UUID, 0x00001001, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PublicBrowseGroupServiceClass_UUID, 0x00001002, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(SerialPortServiceClass_UUID, 0x00001101, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(LANAccessUsingPPPServiceClass_UUID, 0x00001102, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(DialupNetworkingServiceClass_UUID, 0x00001103, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(IrMCSyncServiceClass_UUID, 0x00001104, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(OBEXObjectPushServiceClass_UUID, 0x00001105, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(OBEXFileTransferServiceClass_UUID, 0x00001106, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(IrMCSyncCommandServiceClass_UUID, 0x00001107, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HeadsetServiceClass_UUID, 0x00001108, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(CordlessTelephonyServiceClass_UUID, 0x00001109, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AudioSourceServiceClass_UUID, 0x0000110A, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AudioSinkServiceClass_UUID, 0x0000110B, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AVRemoteControlTargetServiceClass_UUID, 0x0000110C, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AdvancedAudioDistributionServiceClass_UUID, 0x0000110D, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AVRemoteControlServiceClass_UUID, 0x0000110E, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AVRemoteControlControllerServiceClass_UUID, 0x0000110F, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(IntercomServiceClass_UUID, 0x00001110, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(FaxServiceClass_UUID, 0x00001111, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HeadsetAudioGatewayServiceClass_UUID, 0x00001112, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(WAPServiceClass_UUID, 0x00001113, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(WAPClientServiceClass_UUID, 0x00001114, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PANUServiceClass_UUID, 0x00001115, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(NAPServiceClass_UUID, 0x00001116, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(GNServiceClass_UUID, 0x00001117, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(DirectPrintingServiceClass_UUID, 0x00001118, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ReferencePrintingServiceClass_UUID, 0x00001119, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ImagingServiceClass_UUID, 0x0000111A, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ImagingResponderServiceClass_UUID, 0x0000111B, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ImagingAutomaticArchiveServiceClass_UUID, 0x0000111C, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ImagingReferenceObjectsServiceClass_UUID, 0x0000111D, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HandsfreeServiceClass_UUID, 0x0000111E, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HandsfreeAudioGatewayServiceClass_UUID, 0x0000111F, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(DirectPrintingReferenceObjectsServiceClass_UUID, 0x00001120, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ReflectedUIServiceClass_UUID, 0x00001121, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(BasicPringingServiceClass_UUID, 0x00001122, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PrintingStatusServiceClass_UUID, 0x00001123, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HumanInterfaceDeviceServiceClass_UUID, 0x00001124, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HardcopyCableReplacementServiceClass_UUID, 0x00001125, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HCRPrintServiceClass_UUID, 0x00001126, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(HCRScanServiceClass_UUID, 0x00001127, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(CommonISDNAccessServiceClass_UUID, 0x00001128, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(VideoConferencingGWServiceClass_UUID, 0x00001129, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UDIMTServiceClass_UUID, 0x0000112A, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UDITAServiceClass_UUID, 0x0000112B, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(AudioVideoServiceClass_UUID, 0x0000112C, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(SimAccessServiceClass_UUID, 0x0000112D, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PhonebookAccessPceServiceClass_UUID, 0x0000112E, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PhonebookAccessPseServiceClass_UUID, 0x0000112F, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(PnPInformationServiceClass_UUID, 0x00001200, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(GenericNetworkingServiceClass_UUID, 0x00001201, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(GenericFileTransferServiceClass_UUID, 0x00001202, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(GenericAudioServiceClass_UUID, 0x00001203, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(GenericTelephonyServiceClass_UUID, 0x00001204, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UPnpServiceClass_UUID, 0x00001205, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(UPnpIpServiceClass_UUID, 0x00001206, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ESdpUpnpIpPanServiceClass_UUID, 0x00001300, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ESdpUpnpIpLapServiceClass_UUID, 0x00001301, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(ESdpUpnpL2capServiceClass_UUID, 0x00001302, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(VideoSourceServiceClass_UUID, 0x00001303, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(VideoSinkServiceClass_UUID, 0x00001304, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) DEFINE_GUID(VideoDistributionServiceClass_UUID, 0x00001305, 0x00000000, 0x00001000, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x0000005F, 0x0000009B, 0x00000034, 0x000000FB) # # Fixing typos introduced in previous releases # const BasicPrintingServiceClass_UUID* = BasicPringingServiceClass_UUID ServiceDiscoveryServerServiceClassID_UUID16* = (0x00001000) BrowseGroupDescriptorServiceClassID_UUID16* = (0x00001001) PublicBrowseGroupServiceClassID_UUID16* = (0x00001002) SerialPortServiceClassID_UUID16* = (0x00001101) LANAccessUsingPPPServiceClassID_UUID16* = (0x00001102) DialupNetworkingServiceClassID_UUID16* = (0x00001103) IrMCSyncServiceClassID_UUID16* = (0x00001104) OBEXObjectPushServiceClassID_UUID16* = (0x00001105) OBEXFileTransferServiceClassID_UUID16* = (0x00001106) IrMcSyncCommandServiceClassID_UUID16* = (0x00001107) HeadsetServiceClassID_UUID16* = (0x00001108) CordlessServiceClassID_UUID16* = (0x00001109) AudioSourceServiceClassID_UUID16* = (0x0000110A) AudioSinkSourceServiceClassID_UUID16* = (0x0000110B) AVRemoteControlTargetServiceClassID_UUID16* = (0x0000110C) AdvancedAudioDistributionServiceClassID_UUID16* = (0x0000110D) AVRemoteControlServiceClassID_UUID16* = (0x0000110E) AVRemoteControlControllerServiceClass_UUID16* = (0x0000110F) IntercomServiceClassID_UUID16* = (0x00001110) FaxServiceClassID_UUID16* = (0x00001111) HeadsetAudioGatewayServiceClassID_UUID16* = (0x00001112) WAPServiceClassID_UUID16* = (0x00001113) WAPClientServiceClassID_UUID16* = (0x00001114) PANUServiceClassID_UUID16* = (0x00001115) NAPServiceClassID_UUID16* = (0x00001116) GNServiceClassID_UUID16* = (0x00001117) DirectPrintingServiceClassID_UUID16* = (0x00001118) ReferencePrintingServiceClassID_UUID16* = (0x00001119) ImagingServiceClassID_UUID16* = (0x0000111A) ImagingResponderServiceClassID_UUID16* = (0x0000111B) ImagingAutomaticArchiveServiceClassID_UUID16* = (0x0000111C) ImagingReferenceObjectsServiceClassID_UUID16* = (0x0000111D) HandsfreeServiceClassID_UUID16* = (0x0000111E) HandsfreeAudioGatewayServiceClassID_UUID16* = (0x0000111F) DirectPrintingReferenceObjectsServiceClassID_UUID16* = (0x00001120) ReflectsUIServiceClassID_UUID16* = (0x00001121) BasicPrintingServiceClassID_UUID16* = (0x00001122) PrintingStatusServiceClassID_UUID16* = (0x00001123) HumanInterfaceDeviceServiceClassID_UUID16* = (0x00001124) HardcopyCableReplacementServiceClassID_UUID16* = (0x00001125) HCRPrintServiceClassID_UUID16* = (0x00001126) HCRScanServiceClassID_UUID16* = (0x00001127) CommonISDNAccessServiceClass_UUID16* = (0x00001128) VideoConferencingGWServiceClass_UUID16* = (0x00001129) UDIMTServiceClass_UUID16* = (0x0000112A) UDITAServiceClass_UUID16* = (0x0000112B) AudioVideoServiceClass_UUID16* = (0x0000112C) PnPInformationServiceClassID_UUID16* = (0x00001200) GenericNetworkingServiceClassID_UUID16* = (0x00001201) GenericFileTransferServiceClassID_UUID16* = (0x00001202) GenericAudioServiceClassID_UUID16* = (0x00001203) GenericTelephonyServiceClassID_UUID16* = (0x00001204) # # The SIG renamed the uuid for VideoConferencingServiceClass # const VideoConferencingServiceClass_UUID* = AVRemoteControlControllerServiceClass_UUID VideoConferencingServiceClassID_UUID16* = AVRemoteControlControllerServiceClass_UUID16 # # max length of device friendly name. # const BTH_MAX_NAME_SIZE* = (248) BTH_MAX_PIN_SIZE* = (16) BTH_LINK_KEY_LENGTH* = (16) BTH_MFG_ERICSSON* = (0) BTH_MFG_NOKIA* = (1) BTH_MFG_INTEL* = (2) BTH_MFG_IBM* = (3) BTH_MFG_TOSHIBA* = (4) BTH_MFG_3COM* = (5) BTH_MFG_MICROSOFT* = (6) BTH_MFG_LUCENT* = (7) BTH_MFG_MOTOROLA* = (8) BTH_MFG_INFINEON* = (9) BTH_MFG_CSR* = (10) BTH_MFG_SILICONWAVE* = (11) BTH_MFG_DIGIANSWER* = (12) BTH_MFG_TI* = (13) BTH_MFG_PARTHUS* = (14) BTH_MFG_BROADCOM* = (15) BTH_MFG_MITEL* = (16) BTH_MFG_WIDCOMM* = (17) BTH_MFG_ZEEVO* = (18) BTH_MFG_ATMEL* = (19) BTH_MFG_MITSIBUSHI* = (20) BTH_MFG_RTX_TELECOM* = (21) BTH_MFG_KC_TECHNOLOGY* = (22) BTH_MFG_NEWLOGIC* = (23) BTH_MFG_TRANSILICA* = (24) BTH_MFG_ROHDE_SCHWARZ* = (25) BTH_MFG_TTPCOM* = (26) BTH_MFG_SIGNIA* = (27) BTH_MFG_CONEXANT* = (28) BTH_MFG_QUALCOMM* = (29) BTH_MFG_INVENTEL* = (30) BTH_MFG_AVM_BERLIN* = (31) BTH_MFG_BANDSPEED* = (32) BTH_MFG_MANSELLA* = (33) BTH_MFG_NEC* = (34) BTH_MFG_WAVEPLUS_TECHNOLOGY_CO* = (35) BTH_MFG_ALCATEL* = (36) BTH_MFG_PHILIPS_SEMICONDUCTOR* = (37) BTH_MFG_C_TECHNOLOGIES* = (38) BTH_MFG_OPEN_INTERFACE* = (39) BTH_MFG_RF_MICRO_DEVICES* = (40) BTH_MFG_HITACHI* = (41) BTH_MFG_SYMBOL_TECHNOLOGIES* = (42) BTH_MFG_TENOVIS* = (43) BTH_MFG_MACRONIX_INTERNATIONAL* = (44) BTH_MFG_NORDIC_SEMICONDUCTORS_ASA* = (89) BTH_MFG_INTERNAL_USE* = (65535) type BTH_ADDR* = ULONGLONG PBTH_ADDR* = ptr ULONGLONG BTH_COD* = ULONG PBTH_COD* = ptr ULONG BTH_LAP* = ULONG PBTH_LAP* = ptr ULONG const NAP_BIT_OFFSET* = (8 * 4) SAP_BIT_OFFSET* = (0) template GET_NAP*(bth_addr: expr): expr = ((USHORT)(((bth_addr) and NAP_MASK) shr NAP_BIT_OFFSET)) template GET_SAP*(bth_addr: expr): expr = ((ULONG)(((bth_addr) and SAP_MASK) shr SAP_BIT_OFFSET)) template SET_NAP*(nap: expr): expr = (((ULONGLONG)((USHORT)(nap))) shl NAP_BIT_OFFSET) template SET_SAP*(sap: expr): expr = (((ULONGLONG)((ULONG)(sap))) shl SAP_BIT_OFFSET) template SET_NAP_SAP*(nap, sap: expr): expr = (SET_NAP(nap) or SET_SAP(sap)) const COD_FORMAT_BIT_OFFSET* = (0) COD_MINOR_BIT_OFFSET* = (2) COD_MAJOR_BIT_OFFSET* = (8 * 1) COD_SERVICE_BIT_OFFSET* = (8 * 1 + 5) COD_FORMAT_MASK* = (0x00000003) COD_MINOR_MASK* = (0x000000FC) COD_MAJOR_MASK* = (0x00001F00) COD_SERVICE_MASK* = (0x00FFE000) template GET_COD_FORMAT*(cod: expr): expr = ((cod) and COD_FORMAT_MASK shr COD_FORMAT_BIT_OFFSET) template GET_COD_MINOR*(cod: expr): expr = (((cod) and COD_MINOR_MASK) shr COD_MINOR_BIT_OFFSET) template GET_COD_MAJOR*(cod: expr): expr = (((cod) and COD_MAJOR_MASK) shr COD_MAJOR_BIT_OFFSET) template GET_COD_SERVICE*(cod: expr): expr = (((cod) and COD_SERVICE_MASK) shr COD_SERVICE_BIT_OFFSET) template SET_COD_MINOR*(cod, minor: expr): expr = (cod) = ((cod) and not COD_MINOR_MASK) or ((minor) shl COD_MINOR_BIT_OFFSET) template SET_COD_MAJOR*(cod, major: expr): expr = (cod) = ((cod) and not COD_MAJOR_MASK) or ((major) shl COD_MAJOR_BIT_OFFSET) template SET_COD_SERVICE*(cod, service: expr): expr = (cod) = ((cod) and not COD_SERVICE_MASK) or ((service) shl COD_SERVICE_BIT_OFFSET) const COD_VERSION* = (0x00000000) COD_SERVICE_LIMITED* = (0x00000001) COD_SERVICE_POSITIONING* = (0x00000008) COD_SERVICE_NETWORKING* = (0x00000010) COD_SERVICE_RENDERING* = (0x00000020) COD_SERVICE_CAPTURING* = (0x00000040) COD_SERVICE_OBJECT_XFER* = (0x00000080) COD_SERVICE_AUDIO* = (0x00000100) COD_SERVICE_TELEPHONY* = (0x00000200) COD_SERVICE_INFORMATION* = (0x00000400) COD_SERVICE_VALID_MASK* = (COD_SERVICE_LIMITED or COD_SERVICE_POSITIONING or COD_SERVICE_NETWORKING or COD_SERVICE_RENDERING or COD_SERVICE_CAPTURING or COD_SERVICE_OBJECT_XFER or COD_SERVICE_AUDIO or COD_SERVICE_TELEPHONY or COD_SERVICE_INFORMATION) COD_SERVICE_MAX_COUNT* = (9) # # Major class codes # const COD_MAJOR_MISCELLANEOUS* = (0x00000000) COD_MAJOR_COMPUTER* = (0x00000001) COD_MAJOR_PHONE* = (0x00000002) COD_MAJOR_LAN_ACCESS* = (0x00000003) COD_MAJOR_AUDIO* = (0x00000004) COD_MAJOR_PERIPHERAL* = (0x00000005) COD_MAJOR_IMAGING* = (0x00000006) COD_MAJOR_WEARABLE* = (0x00000007) COD_MAJOR_TOY* = (0x00000008) COD_MAJOR_HEALTH* = (0x00000009) COD_MAJOR_UNCLASSIFIED* = (0x0000001F) # # Minor class codes specific to each major class # const COD_COMPUTER_MINOR_UNCLASSIFIED* = (0x00000000) COD_COMPUTER_MINOR_DESKTOP* = (0x00000001) COD_COMPUTER_MINOR_SERVER* = (0x00000002) COD_COMPUTER_MINOR_LAPTOP* = (0x00000003) COD_COMPUTER_MINOR_HANDHELD* = (0x00000004) COD_COMPUTER_MINOR_PALM* = (0x00000005) COD_COMPUTER_MINOR_WEARABLE* = (0x00000006) COD_PHONE_MINOR_UNCLASSIFIED* = (0x00000000) COD_PHONE_MINOR_CELLULAR* = (0x00000001) COD_PHONE_MINOR_CORDLESS* = (0x00000002) COD_PHONE_MINOR_SMART* = (0x00000003) COD_PHONE_MINOR_WIRED_MODEM* = (0x00000004) COD_AUDIO_MINOR_UNCLASSIFIED* = (0x00000000) COD_AUDIO_MINOR_HEADSET* = (0x00000001) COD_AUDIO_MINOR_HANDS_FREE* = (0x00000002) COD_AUDIO_MINOR_HEADSET_HANDS_FREE* = (0x00000003) COD_AUDIO_MINOR_MICROPHONE* = (0x00000004) COD_AUDIO_MINOR_LOUDSPEAKER* = (0x00000005) COD_AUDIO_MINOR_HEADPHONES* = (0x00000006) COD_AUDIO_MINOR_PORTABLE_AUDIO* = (0x00000007) COD_AUDIO_MINOR_CAR_AUDIO* = (0x00000008) COD_AUDIO_MINOR_SET_TOP_BOX* = (0x00000009) COD_AUDIO_MINOR_HIFI_AUDIO* = (0x0000000A) COD_AUDIO_MINOR_VCR* = (0x0000000B) COD_AUDIO_MINOR_VIDEO_CAMERA* = (0x0000000C) COD_AUDIO_MINOR_CAMCORDER* = (0x0000000D) COD_AUDIO_MINOR_VIDEO_MONITOR* = (0x0000000E) COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER* = (0x0000000F) COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING* = (0x00000010) # #define COD_AUDIO_MINOR_RESERVED (0x11) const COD_AUDIO_MINOR_GAMING_TOY* = (0x00000012) COD_PERIPHERAL_MINOR_KEYBOARD_MASK* = (0x00000010) COD_PERIPHERAL_MINOR_POINTER_MASK* = (0x00000020) COD_PERIPHERAL_MINOR_NO_CATEGORY* = (0x00000000) COD_PERIPHERAL_MINOR_JOYSTICK* = (0x00000001) COD_PERIPHERAL_MINOR_GAMEPAD* = (0x00000002) COD_PERIPHERAL_MINOR_REMOTE_CONTROL* = (0x00000003) COD_PERIPHERAL_MINOR_SENSING* = (0x00000004) COD_IMAGING_MINOR_DISPLAY_MASK* = (0x00000004) COD_IMAGING_MINOR_CAMERA_MASK* = (0x00000008) COD_IMAGING_MINOR_SCANNER_MASK* = (0x00000010) COD_IMAGING_MINOR_PRINTER_MASK* = (0x00000020) COD_WEARABLE_MINOR_WRIST_WATCH* = (0x00000001) COD_WEARABLE_MINOR_PAGER* = (0x00000002) COD_WEARABLE_MINOR_JACKET* = (0x00000003) COD_WEARABLE_MINOR_HELMET* = (0x00000004) COD_WEARABLE_MINOR_GLASSES* = (0x00000005) COD_TOY_MINOR_ROBOT* = (0x00000001) COD_TOY_MINOR_VEHICLE* = (0x00000002) COD_TOY_MINOR_DOLL_ACTION_FIGURE* = (0x00000003) COD_TOY_MINOR_CONTROLLER* = (0x00000004) COD_TOY_MINOR_GAME* = (0x00000005) COD_HEALTH_MINOR_BLOOD_PRESSURE_MONITOR* = (0x00000001) COD_HEALTH_MINOR_THERMOMETER* = (0x00000002) COD_HEALTH_MINOR_WEIGHING_SCALE* = (0x00000003) COD_HEALTH_MINOR_GLUCOSE_METER* = (0x00000004) COD_HEALTH_MINOR_PULSE_OXIMETER* = (0x00000005) COD_HEALTH_MINOR_HEART_PULSE_MONITOR* = (0x00000006) COD_HEALTH_MINOR_HEALTH_DATA_DISPLAY* = (0x00000007) COD_HEALTH_MINOR_STEP_COUNTER* = (0x00000008) # # Cannot use GET_COD_MINOR for this b/c it is embedded in a different manner # than the rest of the major classes # const COD_LAN_ACCESS_BIT_OFFSET* = (5) COD_LAN_MINOR_MASK* = (0x0000001C) COD_LAN_ACCESS_MASK* = (0x000000E0) template GET_COD_LAN_MINOR*(cod: expr): expr = (((cod) and COD_LAN_MINOR_MASK) shr COD_MINOR_BIT_OFFSET) template GET_COD_LAN_ACCESS*(cod: expr): expr = (((cod) and COD_LAN_ACCESS_MASK) shr COD_LAN_ACCESS_BIT_OFFSET) # # LAN access percent usage subcodes # const COD_LAN_MINOR_UNCLASSIFIED* = (0x00000000) COD_LAN_ACCESS_0_USED* = (0x00000000) COD_LAN_ACCESS_17_USED* = (0x00000001) COD_LAN_ACCESS_33_USED* = (0x00000002) COD_LAN_ACCESS_50_USED* = (0x00000003) COD_LAN_ACCESS_67_USED* = (0x00000004) COD_LAN_ACCESS_83_USED* = (0x00000005) COD_LAN_ACCESS_99_USED* = (0x00000006) COD_LAN_ACCESS_FULL* = (0x00000007) # # Extended Inquiry Response (EIR) defines. # const BTH_EIR_FLAGS_ID* = (0x00000001) BTH_EIR_16_UUIDS_PARTIAL_ID* = (0x00000002) BTH_EIR_16_UUIDS_COMPLETE_ID* = (0x00000003) BTH_EIR_32_UUIDS_PARTIAL_ID* = (0x00000004) BTH_EIR_32_UUIDS_COMPLETE_ID* = (0x00000005) BTH_EIR_128_UUIDS_PARTIAL_ID* = (0x00000006) BTH_EIR_128_UUIDS_COMPLETE_ID* = (0x00000007) BTH_EIR_LOCAL_NAME_PARTIAL_ID* = (0x00000008) BTH_EIR_LOCAL_NAME_COMPLETE_ID* = (0x00000009) BTH_EIR_TX_POWER_LEVEL_ID* = (0x0000000A) BTH_EIR_OOB_OPT_DATA_LEN_ID* = (0x0000000B) # OOB only. BTH_EIR_OOB_BD_ADDR_ID* = (0x0000000C) # OOB only. BTH_EIR_OOB_COD_ID* = (0x0000000D) # OOB only. BTH_EIR_OOB_SP_HASH_ID* = (0x0000000E) # OOB only. BTH_EIR_OOB_SP_RANDOMIZER_ID* = (0x0000000F) # OOB only. BTH_EIR_MANUFACTURER_ID* = (0x000000FF) # # Extended Inquiry Response (EIR) size. # const BTH_EIR_SIZE* = (240) # # General Inquiry Access Code. # const LAP_GIAC_VALUE* = (0x009E8B33) # # Limited Inquiry Access Code. # const LAP_LIAC_VALUE* = (0x009E8B00) BTH_ADDR_IAC_FIRST* = (0x009E8B00) BTH_ADDR_IAC_LAST* = (0x009E8B3F) BTH_ADDR_LIAC* = (0x009E8B00) BTH_ADDR_GIAC* = (0x009E8B33) template BTH_ERROR*(btStatus: expr): expr = ((btStatus) != BTH_ERROR_SUCCESS) template BTH_SUCCESS*(btStatus: expr): expr = ((btStatus) == BTH_ERROR_SUCCESS) const BTH_ERROR_SUCCESS* = (0x00000000) BTH_ERROR_UNKNOWN_HCI_COMMAND* = (0x00000001) BTH_ERROR_NO_CONNECTION* = (0x00000002) BTH_ERROR_HARDWARE_FAILURE* = (0x00000003) BTH_ERROR_PAGE_TIMEOUT* = (0x00000004) BTH_ERROR_AUTHENTICATION_FAILURE* = (0x00000005) BTH_ERROR_KEY_MISSING* = (0x00000006) BTH_ERROR_MEMORY_FULL* = (0x00000007) BTH_ERROR_CONNECTION_TIMEOUT* = (0x00000008) BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS* = (0x00000009) BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS* = (0x0000000A) BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS* = (0x0000000B) BTH_ERROR_COMMAND_DISALLOWED* = (0x0000000C) BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES* = (0x0000000D) BTH_ERROR_HOST_REJECTED_SECURITY_REASONS* = (0x0000000E) BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE* = (0x0000000F) BTH_ERROR_HOST_TIMEOUT* = (0x00000010) BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER* = (0x00000011) BTH_ERROR_INVALID_HCI_PARAMETER* = (0x00000012) BTH_ERROR_REMOTE_USER_ENDED_CONNECTION* = (0x00000013) BTH_ERROR_REMOTE_LOW_RESOURCES* = (0x00000014) BTH_ERROR_REMOTE_POWERING_OFF* = (0x00000015) BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION* = (0x00000016) BTH_ERROR_REPEATED_ATTEMPTS* = (0x00000017) BTH_ERROR_PAIRING_NOT_ALLOWED* = (0x00000018) BTH_ERROR_UKNOWN_LMP_PDU* = (0x00000019) BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE* = (0x0000001A) BTH_ERROR_SCO_OFFSET_REJECTED* = (0x0000001B) BTH_ERROR_SCO_INTERVAL_REJECTED* = (0x0000001C) BTH_ERROR_SCO_AIRMODE_REJECTED* = (0x0000001D) BTH_ERROR_INVALID_LMP_PARAMETERS* = (0x0000001E) BTH_ERROR_UNSPECIFIED_ERROR* = (0x0000001F) BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE* = (0x00000020) BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED* = (0x00000021) BTH_ERROR_LMP_RESPONSE_TIMEOUT* = (0x00000022) BTH_ERROR_LMP_TRANSACTION_COLLISION* = (0x00000023) BTH_ERROR_LMP_PDU_NOT_ALLOWED* = (0x00000024) BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE* = (0x00000025) BTH_ERROR_UNIT_KEY_NOT_USED* = (0x00000026) BTH_ERROR_QOS_IS_NOT_SUPPORTED* = (0x00000027) BTH_ERROR_INSTANT_PASSED* = (0x00000028) BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED* = (0x00000029) BTH_ERROR_DIFFERENT_TRANSACTION_COLLISION* = (0x0000002A) BTH_ERROR_QOS_UNACCEPTABLE_PARAMETER* = (0x0000002C) BTH_ERROR_QOS_REJECTED* = (0x0000002D) BTH_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED* = (0x0000002E) BTH_ERROR_INSUFFICIENT_SECURITY* = (0x0000002F) BTH_ERROR_PARAMETER_OUT_OF_MANDATORY_RANGE* = (0x00000030) BTH_ERROR_ROLE_SWITCH_PENDING* = (0x00000032) BTH_ERROR_RESERVED_SLOT_VIOLATION* = (0x00000034) BTH_ERROR_ROLE_SWITCH_FAILED* = (0x00000035) BTH_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE* = (0x00000036) BTH_ERROR_SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST* = (0x00000037) BTH_ERROR_HOST_BUSY_PAIRING* = (0x00000038) BTH_ERROR_CONNECTION_REJECTED_DUE_TO_NO_SUITABLE_CHANNEL_FOUND* = ( 0x00000039) BTH_ERROR_CONTROLLER_BUSY* = (0x0000003A) BTH_ERROR_UNACCEPTABLE_CONNECTION_INTERVAL* = (0x0000003B) BTH_ERROR_DIRECTED_ADVERTISING_TIMEOUT* = (0x0000003C) BTH_ERROR_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE* = (0x0000003D) BTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED* = (0x0000003E) BTH_ERROR_MAC_CONNECTION_FAILED* = (0x0000003F) BTH_ERROR_UNSPECIFIED* = (0x000000FF) # # Min, max, and default L2cap MTU. # const L2CAP_MIN_MTU* = (48) L2CAP_MAX_MTU* = (0x0000FFFF) L2CAP_DEFAULT_MTU* = (672) # # Max l2cap signal size (48) - size of signal header (4) # const MAX_L2CAP_PING_DATA_LENGTH* = (44) MAX_L2CAP_INFO_DATA_LENGTH* = (44) # # the following structures provide information about # disocvered remote radios. # const BDIF_ADDRESS* = (0x00000001) BDIF_COD* = (0x00000002) BDIF_NAME* = (0x00000004) BDIF_PAIRED* = (0x00000008) BDIF_PERSONAL* = (0x00000010) BDIF_CONNECTED* = (0x00000020) # # Support added in KB942567 # const BDIF_SHORT_NAME* = (0x00000040) BDIF_VISIBLE* = (0x00000080) BDIF_SSP_SUPPORTED* = (0x00000100) BDIF_SSP_PAIRED* = (0x00000200) BDIF_SSP_MITM_PROTECTED* = (0x00000400) BDIF_RSSI* = (0x00001000) BDIF_EIR* = (0x00002000) const BDIF_BR* = (0x00004000) BDIF_LE* = (0x00008000) BDIF_LE_PAIRED* = (0x00010000) BDIF_LE_PERSONAL* = (0x00020000) BDIF_LE_MITM_PROTECTED* = (0x00040000) BDIF_LE_PRIVACY_ENABLED* = (0x00080000) BDIF_LE_RANDOM_ADDRESS_TYPE* = (0x00100000) BDIF_VALID_FLAGS* = (BDIF_ADDRESS or BDIF_COD or BDIF_NAME or BDIF_PAIRED or BDIF_PERSONAL or BDIF_CONNECTED or BDIF_SHORT_NAME or BDIF_VISIBLE or BDIF_RSSI or BDIF_EIR or BDIF_SSP_PAIRED or BDIF_SSP_MITM_PROTECTED or BDIF_BR or BDIF_LE or BDIF_LE_PAIRED or BDIF_LE_PERSONAL or BDIF_LE_MITM_PROTECTED or BDIF_LE_PRIVACY_ENABLED or BDIF_LE_RANDOM_ADDRESS_TYPE) type BTH_DEVICE_INFO* = object flags*: ULONG # # Combination BDIF_Xxx flags # # # Address of remote device. # address*: BTH_ADDR # # Class Of Device. # classOfDevice*: BTH_COD # # name of the device # name*: array[BTH_MAX_NAME_SIZE, CHAR] PBTH_DEVICE_INFO* = ptr BTH_DEVICE_INFO # # Buffer associated with GUID_BLUETOOTH_RADIO_IN_RANGE # type BTH_RADIO_IN_RANGE* = object deviceInfo*: BTH_DEVICE_INFO # # Information about the remote radio # # # The previous flags value for the BTH_DEVICE_INFO. The receiver of this # notification can compare the deviceInfo.flags and previousDeviceFlags # to determine what has changed about this remote radio. # # For instance, if BDIF_NAME is set in deviceInfo.flags and not in # previousDeviceFlags, the remote radio's has just been retrieved. # previousDeviceFlags*: ULONG PBTH_RADIO_IN_RANGE* = ptr BTH_RADIO_IN_RANGE # # Buffer associated with GUID_BLUETOOTH_L2CAP_EVENT # type BTH_L2CAP_EVENT_INFO* = object bthAddress*: BTH_ADDR # # Remote radio address which the L2CAP event is associated with # # # The PSM that is either being connected to or disconnected from # psm*: USHORT # # If != 0, then the channel has just been established. If == 0, then the # channel has been destroyed. Notifications for a destroyed channel will # only be sent for channels successfully established. # connected*: UCHAR # # If != 0, then the local host iniated the l2cap connection. If == 0, then # the remote host initated the connection. This field is only valid if # connect is != 0. # initiated*: UCHAR PBTH_L2CAP_EVENT_INFO* = ptr BTH_L2CAP_EVENT_INFO const HCI_CONNECTION_TYPE_ACL* = (1) HCI_CONNECTION_TYPE_SCO* = (2) HCI_CONNECTION_TYPE_LE* = (3) # # Fix typos # const HCI_CONNNECTION_TYPE_ACL* = HCI_CONNECTION_TYPE_ACL HCI_CONNNECTION_TYPE_SCO* = HCI_CONNECTION_TYPE_SCO # # Buffer associated with GUID_BLUETOOTH_HCI_EVENT # type BTH_HCI_EVENT_INFO* = object bthAddress*: BTH_ADDR # # Remote radio address which the HCI event is associated with # # # HCI_CONNNECTION_TYPE_XXX value # connectionType*: UCHAR # # If != 0, then the underlying connection to the remote radio has just # been estrablished. If == 0, then the underlying conneciton has just been # destroyed. # connected*: UCHAR PBTH_HCI_EVENT_INFO* = ptr BTH_HCI_EVENT_INFO # # Support added in KB942567 # type IO_CAPABILITY* {.size: sizeof(cint).} = enum IoCaps_DisplayOnly = 0x00000000, IoCaps_DisplayYesNo = 0x00000001, IoCaps_KeyboardOnly = 0x00000002, IoCaps_NoInputNoOutput = 0x00000003, IoCaps_Undefined = 0x000000FF AUTHENTICATION_REQUIREMENTS* {.size: sizeof(cint).} = enum MITMProtectionNotRequired = 0x00000000, MITMProtectionRequired = 0x00000001, MITMProtectionNotRequiredBonding = 0x00000002, MITMProtectionRequiredBonding = 0x00000003, MITMProtectionNotRequiredGeneralBonding = 0x00000004, MITMProtectionRequiredGeneralBonding = 0x00000005, MITMProtectionNotDefined = 0x000000FF template IsMITMProtectionRequired*(requirements: expr): expr = ((MITMProtectionRequired == requirements) or (MITMProtectionRequiredBonding == requirements) or (MITMProtectionRequiredGeneralBonding == requirements)) # # Max length we allow for ServiceName in the remote SDP records # const BTH_MAX_SERVICE_NAME_SIZE* = (256) MAX_UUIDS_IN_QUERY* = (12) BTH_VID_DEFAULT_VALUE* = (0x0000FFFF) SDP_ERROR_INVALID_SDP_VERSION* = (0x00000001) SDP_ERROR_INVALID_RECORD_HANDLE* = (0x00000002) SDP_ERROR_INVALID_REQUEST_SYNTAX* = (0x00000003) SDP_ERROR_INVALID_PDU_SIZE* = (0x00000004) SDP_ERROR_INVALID_CONTINUATION_STATE* = (0x00000005) SDP_ERROR_INSUFFICIENT_RESOURCES* = (0x00000006) # # Defined by windows to handle server errors that are not described by the # above errors. Start at 0x0100 so we don't go anywhere near the spec # defined values. # # # Success, nothing went wrong # const SDP_ERROR_SUCCESS* = SDP_ERROR(0x00000000) # # The SDP PDU or parameters other than the SDP stream response was not correct # const SDP_ERROR_SERVER_INVALID_RESPONSE* = SDP_ERROR(0x00000100) # # The SDP response stream did not parse correctly. # const SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE* = SDP_ERROR(0x00000200) # # The SDP response stream was successfully parsed, but did not match the # required format for the query. # const SDP_ERROR_SERVER_BAD_FORMAT* = SDP_ERROR(0x00000300) # # SDP was unable to send a continued query back to the server # const SDP_ERROR_COULD_NOT_SEND_CONTINUE* = SDP_ERROR(0x00000400) # # Server sent a response that was too large to fit in the caller's buffer. # const SDP_ERROR_RESPONSE_TOO_LARGE* = SDP_ERROR(0x00000500) SDP_ATTRIB_RECORD_HANDLE* = (0x00000000) SDP_ATTRIB_CLASS_ID_LIST* = (0x00000001) SDP_ATTRIB_RECORD_STATE* = (0x00000002) SDP_ATTRIB_SERVICE_ID* = (0x00000003) SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST* = (0x00000004) SDP_ATTRIB_BROWSE_GROUP_LIST* = (0x00000005) SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST* = (0x00000006) SDP_ATTRIB_INFO_TIME_TO_LIVE* = (0x00000007) SDP_ATTRIB_AVAILABILITY* = (0x00000008) SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST* = (0x00000009) SDP_ATTRIB_DOCUMENTATION_URL* = (0x0000000A) SDP_ATTRIB_CLIENT_EXECUTABLE_URL* = (0x0000000B) SDP_ATTRIB_ICON_URL* = (0x0000000C) SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST* = (0x0000000D) # # Attribute IDs in the range of 0x000D - 0x01FF are reserved for future use # const SDP_ATTRIB_PROFILE_SPECIFIC* = (0x00000200) LANG_BASE_LANGUAGE_INDEX* = (0x00000000) LANG_BASE_ENCODING_INDEX* = (0x00000001) LANG_BASE_OFFSET_INDEX* = (0x00000002) LANG_DEFAULT_ID* = (0x00000100) LANGUAGE_EN_US* = (0x0000656E) ENCODING_UTF_8* = (0x0000006A) STRING_NAME_OFFSET* = (0x00000000) STRING_DESCRIPTION_OFFSET* = (0x00000001) STRING_PROVIDER_NAME_OFFSET* = (0x00000002) SDP_ATTRIB_SDP_VERSION_NUMBER_LIST* = (0x00000200) SDP_ATTRIB_SDP_DATABASE_STATE* = (0x00000201) SDP_ATTRIB_BROWSE_GROUP_ID* = (0x00000200) SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK* = (0x00000301) SDP_ATTRIB_FAX_CLASS_1_SUPPORT* = (0x00000302) SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT* = (0x00000303) SDP_ATTRIB_FAX_CLASS_2_SUPPORT* = (0x00000304) SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT* = (0x00000305) SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL* = (0x00000302) SDP_ATTRIB_LAN_LPSUBNET* = (0x00000200) SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST* = (0x00000303) SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST* = (0x00000301) # this is in the assigned numbers doc, but it does not show up in any profile const SDP_ATTRIB_SERVICE_VERSION* = (0x00000300) SDP_ATTRIB_PAN_NETWORK_ADDRESS* = (0x00000306) SDP_ATTRIB_PAN_WAP_GATEWAY* = (0x00000307) SDP_ATTRIB_PAN_HOME_PAGE_URL* = (0x00000308) SDP_ATTRIB_PAN_WAP_STACK_TYPE* = (0x00000309) SDP_ATTRIB_PAN_SECURITY_DESCRIPTION* = (0x0000030A) SDP_ATTRIB_PAN_NET_ACCESS_TYPE* = (0x0000030B) SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE* = (0x0000030C) SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES* = (0x00000310) SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES* = (0x00000311) SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS* = (0x00000312) SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY* = (0x00000313) SDP_ATTRIB_DI_SPECIFICATION_ID* = (0x00000200) SDP_ATTRIB_DI_VENDOR_ID* = (0x00000201) SDP_ATTRIB_DI_PRODUCT_ID* = (0x00000202) SDP_ATTRIB_DI_VERSION* = (0x00000203) SDP_ATTRIB_DI_PRIMARY_RECORD* = (0x00000204) SDP_ATTRIB_DI_VENDOR_ID_SOURCE* = (0x00000205) SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER* = (0x00000200) SDP_ATTRIB_HID_PARSER_VERSION* = (0x00000201) SDP_ATTRIB_HID_DEVICE_SUBCLASS* = (0x00000202) SDP_ATTRIB_HID_COUNTRY_CODE* = (0x00000203) SDP_ATTRIB_HID_VIRTUAL_CABLE* = (0x00000204) SDP_ATTRIB_HID_RECONNECT_INITIATE* = (0x00000205) SDP_ATTRIB_HID_DESCRIPTOR_LIST* = (0x00000206) SDP_ATTRIB_HID_LANG_ID_BASE_LIST* = (0x00000207) SDP_ATTRIB_HID_SDP_DISABLE* = (0x00000208) SDP_ATTRIB_HID_BATTERY_POWER* = (0x00000209) SDP_ATTRIB_HID_REMOTE_WAKE* = (0x0000020A) SDP_ATTRIB_HID_PROFILE_VERSION* = (0x0000020B) SDP_ATTRIB_HID_SUPERVISION_TIMEOUT* = (0x0000020C) SDP_ATTRIB_HID_NORMALLY_CONNECTABLE* = (0x0000020D) SDP_ATTRIB_HID_BOOT_DEVICE* = (0x0000020E) SDP_ATTRIB_HID_SSR_HOST_MAX_LATENCY* = (0x0000020F) SDP_ATTRIB_HID_SSR_HOST_MIN_TIMEOUT* = (0x00000210) # # Profile specific values # const CORDLESS_EXTERNAL_NETWORK_PSTN* = (0x00000001) CORDLESS_EXTERNAL_NETWORK_ISDN* = (0x00000002) CORDLESS_EXTERNAL_NETWORK_GSM* = (0x00000003) CORDLESS_EXTERNAL_NETWORK_CDMA* = (0x00000004) CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR* = (0x00000005) CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED* = (0x00000006) CORDLESS_EXTERNAL_NETWORK_OTHER* = (0x00000007) OBJECT_PUSH_FORMAT_VCARD_2_1* = (0x00000001) OBJECT_PUSH_FORMAT_VCARD_3_0* = (0x00000002) OBJECT_PUSH_FORMAT_VCAL_1_0* = (0x00000003) OBJECT_PUSH_FORMAT_ICAL_2_0* = (0x00000004) OBJECT_PUSH_FORMAT_VNOTE* = (0x00000005) OBJECT_PUSH_FORMAT_VMESSAGE* = (0x00000006) OBJECT_PUSH_FORMAT_ANY* = (0x000000FF) SYNCH_DATA_STORE_PHONEBOOK* = (0x00000001) SYNCH_DATA_STORE_CALENDAR* = (0x00000003) SYNCH_DATA_STORE_NOTES* = (0x00000005) SYNCH_DATA_STORE_MESSAGES* = (0x00000006) DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG* = (0x00000001) DI_VENDOR_ID_SOURCE_USB_IF* = (0x00000002) PSM_SDP* = (0x00000001) PSM_RFCOMM* = (0x00000003) PSM_TCS_BIN* = (0x00000005) PSM_TCS_BIN_CORDLESS* = (0x00000007) PSM_BNEP* = (0x0000000F) PSM_HID_CONTROL* = (0x00000011) PSM_HID_INTERRUPT* = (0x00000013) PSM_AVCTP* = (0x00000017) PSM_AVDTP* = (0x00000019) PSM_UDI_C_PLANE* = (0x0000001D) # # Strings # const STR_ADDR_FMTA* = "(%02x:%02x:%02x:%02x:%02x:%02x)" const STR_ADDR_SHORT_FMTA* = "%04x%08x" const STR_USBHCI_CLASS_HARDWAREIDA* = "USB\x08Class_E0&SubClass_01&Prot_01" when defined(UNICODE) or defined(BTH_KERN): const STR_ADDR_FMT* = STR_ADDR_FMTW STR_ADDR_SHORT_FMT* = STR_ADDR_SHORT_FMTW STR_USBHCI_CLASS_HARDWAREID* = STR_USBHCI_CLASS_HARDWAREIDW else: const STR_ADDR_FMT* = STR_ADDR_FMTA STR_ADDR_SHORT_FMT* = STR_ADDR_SHORT_FMTA STR_USBHCI_CLASS_HARDWAREID* = STR_USBHCI_CLASS_HARDWAREIDA template GET_BITS*(field, offset, mask: expr): expr = (((field) shr (offset)) and (mask)) template GET_BIT*(field, offset: expr): expr = (GET_BITS(field, offset, 0x00000001)) template LMP_3_SLOT_PACKETS*(x: expr): expr = (GET_BIT(x, 0)) template LMP_5_SLOT_PACKETS*(x: expr): expr = (GET_BIT(x, 1)) template LMP_ENCRYPTION*(x: expr): expr = (GET_BIT(x, 2)) template LMP_SLOT_OFFSET*(x: expr): expr = (GET_BIT(x, 3)) template LMP_TIMING_ACCURACY*(x: expr): expr = (GET_BIT(x, 4)) template LMP_SWITCH*(x: expr): expr = (GET_BIT(x, 5)) template LMP_HOLD_MODE*(x: expr): expr = (GET_BIT(x, 6)) template LMP_SNIFF_MODE*(x: expr): expr = (GET_BIT(x, 7)) template LMP_PARK_MODE*(x: expr): expr = (GET_BIT(x, 8)) template LMP_RSSI*(x: expr): expr = (GET_BIT(x, 9)) template LMP_CHANNEL_QUALITY_DRIVEN_MODE*(x: expr): expr = (GET_BIT(x, 10)) template LMP_SCO_LINK*(x: expr): expr = (GET_BIT(x, 11)) template LMP_HV2_PACKETS*(x: expr): expr = (GET_BIT(x, 12)) template LMP_HV3_PACKETS*(x: expr): expr = (GET_BIT(x, 13)) template LMP_MU_LAW_LOG*(x: expr): expr = (GET_BIT(x, 14)) template LMP_A_LAW_LOG*(x: expr): expr = (GET_BIT(x, 15)) template LMP_CVSD*(x: expr): expr = (GET_BIT(x, 16)) template LMP_PAGING_SCHEME*(x: expr): expr = (GET_BIT(x, 17)) template LMP_POWER_CONTROL*(x: expr): expr = (GET_BIT(x, 18)) template LMP_TRANSPARENT_SCO_DATA*(x: expr): expr = (GET_BIT(x, 19)) template LMP_FLOW_CONTROL_LAG*(x: expr): expr = (GET_BITS(x, 20, 0x00000003)) template LMP_BROADCAST_ENCRYPTION*(x: expr): expr = (GET_BIT(x, 23)) template LMP_ENHANCED_DATA_RATE_ACL_2MBPS_MODE*(x: expr): expr = (GET_BIT(x, 25)) template LMP_ENHANCED_DATA_RATE_ACL_3MBPS_MODE*(x: expr): expr = (GET_BIT(x, 26)) template LMP_ENHANCED_INQUIRY_SCAN*(x: expr): expr = (GET_BIT(x, 27)) template LMP_INTERLACED_INQUIRY_SCAN*(x: expr): expr = (GET_BIT(x, 28)) template LMP_INTERLACED_PAGE_SCAN*(x: expr): expr = (GET_BIT(x, 29)) template LMP_RSSI_WITH_INQUIRY_RESULTS*(x: expr): expr = (GET_BIT(x, 30)) template LMP_ESCO_LINK*(x: expr): expr = (GET_BIT(x, 31)) template LMP_EV4_PACKETS*(x: expr): expr = (GET_BIT(x, 32)) template LMP_EV5_PACKETS*(x: expr): expr = (GET_BIT(x, 33)) template LMP_AFH_CAPABLE_SLAVE*(x: expr): expr = (GET_BIT(x, 35)) template LMP_AFH_CLASSIFICATION_SLAVE*(x: expr): expr = (GET_BIT(x, 36)) template LMP_BR_EDR_NOT_SUPPORTED*(x: expr): expr = (GET_BIT(x, 37)) template LMP_LE_SUPPORTED*(x: expr): expr = (GET_BIT(x, 38)) template LMP_3SLOT_EDR_ACL_PACKETS*(x: expr): expr = (GET_BIT(x, 39)) template LMP_5SLOT_EDR_ACL_PACKETS*(x: expr): expr = (GET_BIT(x, 40)) template LMP_SNIFF_SUBRATING*(x: expr): expr = (GET_BIT(x, 41)) template LMP_PAUSE_ENCRYPTION*(x: expr): expr = (GET_BIT(x, 42)) template LMP_AFH_CAPABLE_MASTER*(x: expr): expr = (GET_BIT(x, 43)) template LMP_AFH_CLASSIFICATION_MASTER*(x: expr): expr = (GET_BIT(x, 44)) template LMP_EDR_ESCO_2MBPS_MODE*(x: expr): expr = (GET_BIT(x, 45)) template LMP_EDR_ESCO_3MBPS_MODE*(x: expr): expr = (GET_BIT(x, 46)) template LMP_3SLOT_EDR_ESCO_PACKETS*(x: expr): expr = (GET_BIT(x, 47)) template LMP_EXTENDED_INQUIRY_RESPONSE*(x: expr): expr = (GET_BIT(x, 48)) template LMP_SIMULT_LE_BR_TO_SAME_DEV*(x: expr): expr = (GET_BIT(x, 49)) template LMP_SECURE_SIMPLE_PAIRING*(x: expr): expr = (GET_BIT(x, 51)) template LMP_ENCAPSULATED_PDU*(x: expr): expr = (GET_BIT(x, 52)) template LMP_ERRONEOUS_DATA_REPORTING*(x: expr): expr = (GET_BIT(x, 53)) template LMP_NON_FLUSHABLE_PACKET_BOUNDARY_FLAG*(x: expr): expr = (GET_BIT(x, 54)) template LMP_LINK_SUPERVISION_TIMEOUT_CHANGED_EVENT*(x: expr): expr = (GET_BIT(x, 56)) template LMP_INQUIRY_RESPONSE_TX_POWER_LEVEL*(x: expr): expr = (GET_BIT(x, 57)) template LMP_EXTENDED_FEATURES*(x: expr): expr = (GET_BIT(x, 63))