HCI_INTERFACE

HCI_INTERFACE contains one entry point for each HCI-level Bluetooth command as defined by the HCI specification of the Bluetooth Core Specification.

Each function pointer from the interface table takes a void* cookie that uniquely identifies the call context to the caller layer. The upper layer can abort the call by calling layer_AbortCall. The call can also be aborted by the underlying system (for communication loss, timeout, card being popped out, or other reasons), in which case, the system calls layer_CallAborted with this cookie.

If the call is successfully completed by the lower layer, which means it did not abort, the lower layer calls one of the callbacks provided by the upper layer. Every _In command from the HCI_INTERFACE has a corresponding _Out command in HCI_CALLBACKS.

If the lower stack generates an event – which are asynchronous events that are not directly related to commands executed by the upper layer, except in the HCI – it gets passed to the upper layer through LAYER_EVENT_INDICATION callbacks.

Not all HCI commands are implemented. Those that are not are stubbed with NULL pointers in HCI_INTERFACE.

See Also

HCI_CALLBACKS | Establishing Connections through HCI | Enhancing the Bluetooth Stack

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.