Go to the documentation of this file.00001 #ifndef _FBT_HCI_EVENT_STRUCTS_H
00002 #define _FBT_HCI_EVENT_STRUCTS_H
00003
00004
00005 #pragma pack(push, 1)
00006
00007 typedef struct
00008 {
00009 unsigned char EventCode;
00010 unsigned char ParameterLength;
00011
00012 } FBT_HCI_EVENT_HEADER, *PFBT_HCI_EVENT_HEADER;
00013
00014 typedef struct
00015 {
00016 FBT_HCI_EVENT_HEADER EventHeader;
00017 unsigned char Status;
00018 unsigned char NumResponses;
00019
00020 } FBT_HCI_INQUIRY_COMPLETE, *PFBT_HCI_INQUIRY_COMPLETE;
00021
00022 typedef struct
00023 {
00024 FBT_HCI_EVENT_HEADER EventHeader;
00025 unsigned char NumResponses;
00026 unsigned char BD_ADDR[FBT_HCI_VARIABLE_SIZE][FBT_HCI_BDADDR_SIZE];
00027 unsigned char PageScanRepetitionMode[FBT_HCI_VARIABLE_SIZE];
00028 unsigned char PageScanPeriodMode[FBT_HCI_VARIABLE_SIZE];
00029 unsigned char PageScanMode[FBT_HCI_VARIABLE_SIZE];
00030 unsigned char ClassOfDevice[FBT_HCI_VARIABLE_SIZE][FBT_HCI_DEVICE_CLASS_SIZE];
00031 unsigned short ClockOffset[FBT_HCI_VARIABLE_SIZE];
00032
00033 } FBT_HCI_INQUIRY_RESULT, *PFBT_HCI_INQUIRY_RESULT;
00034
00035 typedef struct
00036 {
00037 FBT_HCI_EVENT_HEADER EventHeader;
00038 unsigned char Status;
00039 unsigned short ConnectionHandle;
00040 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00041 unsigned char LinkType;
00042 unsigned char EncryptionMode;
00043
00044 } FBT_HCI_CONNECTION_COMPLETE, *PFBT_HCI_CONNECTION_COMPLETE;
00045
00046 typedef struct
00047 {
00048 FBT_HCI_EVENT_HEADER EventHeader;
00049 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00050 unsigned long ClassOfDevice[FBT_HCI_DEVICE_CLASS_SIZE];
00051 unsigned char LinkType;
00052
00053 } FBT_HCI_CONNECTION_REQUEST, *PFBT_HCI_CONNECTION_REQUEST;
00054
00055 typedef struct
00056 {
00057 FBT_HCI_EVENT_HEADER EventHeader;
00058 unsigned char Status;
00059 unsigned short ConnectionHandle;
00060 unsigned char Reason;
00061
00062 } FBT_HCI_DISCONNECTION_COMPLETE, *PFBT_HCI_DISCONNECTION_COMPLETE;
00063
00064 typedef struct
00065 {
00066 FBT_HCI_EVENT_HEADER EventHeader;
00067 unsigned char Status;
00068 unsigned short ConnectionHandle;
00069
00070 } FBT_HCI_AUTHENTICATION_COMPLETE, *PFBT_HCI_AUTHENTICATION_COMPLETE;
00071
00072 typedef struct
00073 {
00074 FBT_HCI_EVENT_HEADER EventHeader;
00075 unsigned char Status;
00076 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00077 unsigned char RemoteName[FBT_HCI_NAME_SIZE];
00078
00079 } FBT_HCI_REMOTE_NAME_REQUEST_COMPLETE, *PFBT_HCI_REMOTE_NAME_REQUEST_COMPLETE;
00080
00081 typedef struct
00082 {
00083 FBT_HCI_EVENT_HEADER EventHeader;
00084 unsigned char Status;
00085 unsigned short ConnectionHandle;
00086 unsigned char EncryptionEnable;
00087
00088 } FBT_HCI_ENCRYPTION_CHANGE, *PFBT_HCI_ENCRYPTION_CHANGE;
00089
00090 typedef struct
00091 {
00092 FBT_HCI_EVENT_HEADER EventHeader;
00093 unsigned char Status;
00094 unsigned short ConnectionHandle;
00095
00096 } FBT_HCI_CHANGE_CONNECTION_LINK_KEY_COMPLETE, *PFBT_HCI_CHANGE_CONNECTION_LINK_KEY_COMPLETE;
00097
00098 typedef struct
00099 {
00100 FBT_HCI_EVENT_HEADER EventHeader;
00101 unsigned char Status;
00102 unsigned short ConnectionHandle;
00103 unsigned char KeyFlag;
00104
00105 } FBT_HCI_MASTER_LINK_KEY_COMPLETE, *PFBT_HCI_MASTER_LINK_KEY_COMPLETE;
00106
00107 typedef struct
00108 {
00109 FBT_HCI_EVENT_HEADER EventHeader;
00110 unsigned char Status;
00111 unsigned short ConnectionHandle;
00112 unsigned char LmpFeatures[8];
00113
00114 } FBT_HCI_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE, *PFBT_HCI_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE;
00115
00116 typedef struct
00117 {
00118 FBT_HCI_EVENT_HEADER EventHeader;
00119 unsigned char Status;
00120 unsigned short ConnectionHandle;
00121 unsigned char LmpVersion;
00122 unsigned short ManufacturerName;
00123 unsigned short LmpSubversion;
00124
00125 } FBT_HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE, *PFBT_HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE;
00126
00127 typedef struct
00128 {
00129 FBT_HCI_EVENT_HEADER EventHeader;
00130 unsigned char Status;
00131 unsigned short ConnectionHandle;
00132 unsigned char Flags;
00133 unsigned char ServiceType;
00134 unsigned long TokenRate;
00135 unsigned long PeakBandwidth;
00136 unsigned long Latency;
00137 unsigned long DelayVariation;
00138
00139 } FBT_HCI_QOS_SETUP_COMPLETE, *PFBT_HCI_QOS_SETUP_COMPLETE;
00140
00141 typedef struct
00142 {
00143 FBT_HCI_EVENT_HEADER EventHeader;
00144 unsigned char NumHCICommandPackets;
00145 unsigned short OpCode;
00146 unsigned char Parameters[FBT_HCI_VARIABLE_SIZE];
00147
00148 } FBT_HCI_COMMAND_COMPLETE, *PFBT_HCI_COMMAND_COMPLETE;
00149
00150 typedef struct
00151 {
00152 FBT_HCI_EVENT_HEADER EventHeader;
00153 unsigned char Status;
00154 unsigned char NumHCICommandPackets;
00155 unsigned short OpCode;
00156
00157 } FBT_HCI_COMMAND_STATUS, *PFBT_HCI_COMMAND_STATUS;
00158
00159 typedef struct
00160 {
00161 FBT_HCI_EVENT_HEADER EventHeader;
00162 unsigned char HardwareCode;
00163
00164 } FBT_HCI_HARDWARE_ERROR, *PFBT_HCI_HARDWARE_ERROR;
00165
00166 typedef struct
00167 {
00168 FBT_HCI_EVENT_HEADER EventHeader;
00169 unsigned short ConnectionHandle;
00170
00171 } FBT_HCI_FLUSH_OCCURRED, *PFBT_HCI_FLUSH_OCCURRED;
00172
00173 typedef struct
00174 {
00175 FBT_HCI_EVENT_HEADER EventHeader;
00176 unsigned char Status;
00177 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00178 unsigned char NewRole;
00179
00180 } FBT_HCI_ROLE_CHANGE, *PFBT_HCI_ROLE_CHANGE;
00181
00182 typedef struct
00183 {
00184 FBT_HCI_EVENT_HEADER EventHeader;
00185 unsigned char NumberOfHandles;
00186 unsigned short ConnectionHandle[FBT_HCI_VARIABLE_SIZE];
00187 unsigned short NumberOfCompletedPackets[FBT_HCI_VARIABLE_SIZE];
00188
00189 } FBT_HCI_NUMBER_OF_COMPLETED_PACKETS, *PFBT_HCI_NUMBER_OF_COMPLETED_PACKETS;
00190
00191 typedef struct
00192 {
00193 FBT_HCI_EVENT_HEADER EventHeader;
00194 unsigned char Status;
00195 unsigned short ConnectionHandle;
00196 unsigned char CurrentMode;
00197 unsigned short Interval;
00198
00199 } FBT_HCI_MODE_CHANGE, *PFBT_HCI_MODE_CHANGE;
00200
00201 typedef struct
00202 {
00203 FBT_HCI_EVENT_HEADER EventHeader;
00204 unsigned char NumKeys;
00205 unsigned char BD_ADDR[FBT_HCI_VARIABLE_SIZE][FBT_HCI_BDADDR_SIZE];
00206 unsigned char LinkKey[FBT_HCI_VARIABLE_SIZE][FBT_HCI_LINK_KEY_SIZE];
00207
00208 } FBT_HCI_RETURN_LINK_KEYS, *PFBT_HCI_RETURN_LINK_KEYS;
00209
00210 typedef struct
00211 {
00212 FBT_HCI_EVENT_HEADER EventHeader;
00213 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00214
00215 } FBT_HCI_PIN_CODE_REQUEST, *PFBT_HCI_PIN_CODE_REQUEST;
00216
00217 typedef struct
00218 {
00219 FBT_HCI_EVENT_HEADER EventHeader;
00220 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00221
00222 } FBT_HCI_LINK_KEY_REQUEST, *PFBT_HCI_LINK_KEY_REQUEST;
00223
00224 typedef struct
00225 {
00226 FBT_HCI_EVENT_HEADER EventHeader;
00227 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00228 unsigned char LinkKey[FBT_HCI_LINK_KEY_SIZE];
00229
00230 } FBT_HCI_LINK_KEY_NOTIFICATION, *PFBT_HCI_LINK_KEY_NOTIFICATION;
00231
00232 typedef struct
00233 {
00234 FBT_HCI_EVENT_HEADER EventHeader;
00235 unsigned char HCICommandPacket[FBT_HCI_CMD_MAX_SIZE];
00236
00237 } FBT_HCI_LOOPBACK_COMMAND, *PFBT_HCI_LOOPBACK_COMMAND;
00238
00239 typedef struct
00240 {
00241 FBT_HCI_EVENT_HEADER EventHeader;
00242 unsigned char LinkType;
00243
00244 } FBT_HCI_DATA_BUFFER_OVERFLOW, *PFBT_HCI_DATA_BUFFER_OVERFLOW;
00245
00246 typedef struct
00247 {
00248 FBT_HCI_EVENT_HEADER EventHeader;
00249 unsigned short ConnectionHandle;
00250 unsigned char LmpMaxSlots;
00251
00252 } FBT_HCI_MAX_SLOTS_CHANGE, *PFBT_HCI_MAX_SLOTS_CHANGE;
00253
00254 typedef struct
00255 {
00256 FBT_HCI_EVENT_HEADER EventHeader;
00257 unsigned char Status;
00258 unsigned short ConnectionHandle;
00259 unsigned short ClockOffset;
00260
00261 } FBT_HCI_READ_CLOCK_OFFSET_COMPLETE, *PFBT_HCI_READ_CLOCK_OFFSET_COMPLETE;
00262
00263 typedef struct
00264 {
00265 FBT_HCI_EVENT_HEADER EventHeader;
00266 unsigned char Status;
00267 unsigned short ConnectionHandle;
00268 unsigned short PacketType;
00269
00270 } FBT_HCI_CONNECTION_PACKET_TYPE_CHANGED, *PFBT_HCI_CONNECTION_PACKET_TYPE_CHANGED;
00271
00272 typedef struct
00273 {
00274 FBT_HCI_EVENT_HEADER EventHeader;
00275 unsigned short ConnectionHandle;
00276
00277 } FBT_HCI_QOS_VIOLATION, *PFBT_HCI_QOS_VIOLATION;
00278
00279 typedef struct
00280 {
00281 FBT_HCI_EVENT_HEADER EventHeader;
00282 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00283 unsigned char PageScanMode;
00284
00285 } FBT_HCI_PAGE_SCAN_MODE_CHANGE, *PFBT_HCI_PAGE_SCAN_MODE_CHANGE;
00286
00287 typedef struct
00288 {
00289 FBT_HCI_EVENT_HEADER EventHeader;
00290 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE];
00291 unsigned char PageScanRepetitionMode;
00292
00293 } FBT_HCI_PAGE_SCAN_REPETITION_MODE_CHANGE, *PFBT_HCI_PAGE_SCAN_REPETITION_MODE_CHANGE;
00294
00295 typedef struct
00296 {
00297 unsigned char Status;
00298 unsigned char HCIVersion;
00299 unsigned short HCIRevision;
00300 unsigned char LMPVersion;
00301 unsigned short Manufacturer;
00302 unsigned short LMPSubVersion;
00303
00304 } FBT_HCI_READ_LOCAL_VERSION_INFORMATION_COMPLETE;
00305
00306
00307 typedef struct
00308 {
00309 unsigned short ConnectionHandle: 12;
00310 unsigned short PacketBoundary: 2;
00311 unsigned short Broadcast: 2;
00312 unsigned short DataLength;
00313 unsigned char Data[1];
00314
00315 } FBT_HCI_DATA_PACKET, *PFBT_HCI_DATA_PACKET;
00316
00317 #pragma pack(pop)
00318
00319 #endif // _FBT_HCI_EVENT_STRUCTS_H