Share via


HCI_PARAMETERS (Compact 2013)

3/26/2014

This structure is used to define Host Controller Interface (HCI) transport interfaces.

Syntax

typedef struct __hci_parameters {
  unsigned int uiSize;
  unsigned int fInterfaceVersion;
  int iMaxSizeRead;
  int iMaxSizeWrite;
  int iReadBufferHeader;
  int iReadBufferTrailer;
  int iWriteBufferHeader;
  int iWriteBufferTrailer;
  int uiFlags;
  int fHardwareVersion;
  unsigned int uiResetDelay;
  unsigned int uiWriteTimeout;
  unsigned int uiDriftFactor;
  int iScoWriteLowNumPackets;
  int iScoWriteNumPackets;
  int iScoWritePacketSize;
  int iScoSampleSize;
} HCI_PARAMETERS;

Members

  • uiSize
    Structure size. Must be sizeof(HCI_PARAMETERS).
  • fInterfaceVersion
    Interface version. Must be HCI_INTERFACE_VERSION_1_0. This is the version of the transport driver, not the underlying hardware.
  • iMaxSizeRead
    Maximum size of the read buffer, not including headers and trailers. This value must at least accommodate the largest HCI command, but can be bigger. The buffer submitted to HCI_ReadPacket is at least as big.
  • iMaxSizeWrite
    Maximum size of the write packet, not including headers and trailers. This value must accommodate at least the largest HCI command, but must be no bigger than the maximum data packet that transport accepts. The packet given to HCI_WritePacketis no bigger than this.
  • iReadBufferHeader
    Hint value, used to compute (along with iMaxSizeRead and iReadBufferTrailer) the maximum size of the buffer prepared for HCI_ReadPacket.
  • iReadBufferTrailer
    Hint value, used to compute (along with iMaxSizeRead and iReadBufferHeader) the maximum size of the buffer prepared for HCI_ReadPacket.
  • iWriteBufferHeader
    Number of bytes to preallocate for the transport header in HCI_WritePacket at the beginning of the packet (between 0 and BD_BUFFER::cStart).
  • iWriteBufferTrailer
    Number of bytes to preallocate for the transport trailer in HCI_WritePacket at the end of the packet (between BD_BUFFER::cEnd and BD_BUFFER::cSize).
  • uiFlags
    Flags that specify the HCI commands that should be disabled. This value can be any combination of the following flags.

    Flag

    Value

    HCI_FLAGS_NORESET

    0x00000001. Disables the HCI_Reset command. Setting this flag ensures that the HCI layer does not send this command to the HCI transport layer after a connection is established between the two layers.

    HCI_FLAGS_NOLOCALNAME

    0x00000002. Disables the HCI_Change_Local_Name command that is used to modify the friendly name of the device.

    HCI_FLAGS_NOROLESWITCH

    0x00000004. Changes the role-switching parameter value for the HCI_Create_Connection and HCI_Accept_Connection_Request commands, for a given transport.

  • fHardwareVersion
    Bluetooth specification version of the underlying Bluetooth hardware. Note that this is different from the fInterfaceVersion, which is a version of the transport driver. The Bluetooth specification version can be any of the following values.

    Specification version

    Value

    HCI_HARDWARE_VERSION_V_1_0_A

    0

    HCI_HARDWARE_VERSION_V_1_0_B

    1

    HCI_HARDWARE_VERSION_V_1_1

    2

  • uiResetDelay
    Amount of time, in milliseconds, between the time when command completion is received for the HCI_Reset command and the next command can be executed.
  • uiWriteTimeout
    Amount of time, in milliseconds, after which the command aborts if the controller does not respond with a CommandComplete or CommandStatus event.
  • uiDriftFactor
    Amount of time, in milliseconds, for which the clock offset in inquiry data is presumed to be valid.
  • iScoWriteLowNumPackets
    Minimum number of outstanding SCO-write packets in backlog (0: use default).
  • iScoWriteNumPackets
    Maximum number of outstanding SCO-write packets in backlog (0: use default).
  • iScoWritePacketSize
    Size of each SCO packet (0: use default; -1: SCO not supported).
  • iScoSampleSize
    Sample size of SCO packet (8 or 16 bits).

Requirements

Header

bt_hcip.h

See Also

Reference

Bluetooth HCI Transport Layer Structures
HCI_ReadPacket
HCI_WritePacket
BD_BUFFER