10#define HCI_NUMBER_OF_OVERLAPPED_LISTENS MAXIMUM_WAIT_OBJECTS-1
73 BYTE FilterConditionType,
83 BYTE PageScanRepetitionMode,
86 BYTE AllowRoleSwitch);
virtual DWORD SendReadBDADDR(void)
virtual DWORD SendChangeLocalName(BYTE Name[FBT_HCI_NAME_SIZE])
virtual DWORD SendInquiry(ULONG LAP, BYTE InquiryLength, BYTE NumResponses)
virtual DWORD OnReadLocalNameComplete(BYTE Status, BYTE Name[FBT_HCI_NAME_SIZE])
virtual DWORD StopEventListener(void)
virtual DWORD SendWritePageTimeout(USHORT PageTimeout)
virtual DWORD SendCreateConnection(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], USHORT PacketType, BYTE PageScanRepetitionMode, BYTE PageScanMode, USHORT ClockOffset, BYTE AllowRoleSwitch)
virtual DWORD OnConnectionComplete(BYTE Status, USHORT ConnectionHandle, BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE LinkType, BYTE EncryptionMode)
static friend DWORD CALLBACK Listener(LPVOID pContext)
virtual DWORD SendRemoteNameRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE PageScanRepetitionMode, BYTE PageScanMode, USHORT ClockOffset)
virtual DWORD SendLinkKeyRequestReply(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE LinkKey[FBT_HCI_LINK_KEY_SIZE])
virtual DWORD OnCommandStatus(BYTE Status, BYTE NumHCICommandPackets, USHORT CommandOpcode)
virtual DWORD SendAcceptConnectionRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE RoleSwitch)
virtual DWORD OnLinkKeyRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE])
virtual DWORD SendReset(void)
virtual DWORD OnPINCodeRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE])
virtual DWORD SendDisconnect(USHORT ConnectionHandle, BYTE Reason)
DWORD m_dwListenerThreadId
BYTE m_pEventBuffers[HCI_NUMBER_OF_OVERLAPPED_LISTENS][FBT_HCI_EVENT_MAX_SIZE]
virtual DWORD OnUnknown(PFBT_HCI_EVENT_HEADER pEvent, DWORD Length)
DWORD CompareBDADDRs(BYTE BD_ADDR1[FBT_HCI_BDADDR_SIZE], BYTE BD_ADDR2[FBT_HCI_BDADDR_SIZE])
static LPCTSTR GetStatusText(BYTE Status)
virtual DWORD SendInquiryCancel(void)
virtual DWORD OnEvent(PFBT_HCI_EVENT_HEADER pEvent, DWORD Length)
virtual DWORD SendPINCodeRequestNegativeReply(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE])
OVERLAPPED m_Overlappeds[HCI_NUMBER_OF_OVERLAPPED_LISTENS]
virtual DWORD OnAuthenticationComplete(BYTE Status, USHORT ConnectionHandle)
virtual DWORD SendWriteScanEnable(BYTE ScanEnable)
virtual DWORD SendLinkKeyRequestNegativeReply(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE])
virtual DWORD SendWriteClassOfDevice(BYTE ClassOfDevice[FBT_HCI_DEVICE_CLASS_SIZE])
virtual DWORD SendReadLocalVersionInformation(void)
virtual DWORD SendSetEventFilter(BYTE FilterType, BYTE FilterConditionType, BYTE Condition[FBT_HCI_MAX_CONDITION_SIZE], BYTE ConditionBytes)
virtual DWORD OnCommandComplete(BYTE NumHCICommandPackets, USHORT CommandOpcode, BYTE *Parameters, DWORD ParameterLength)
HANDLE m_hStopListeningEvent
static LPCTSTR GetEventText(BYTE Event)
DWORD SendListenForEvent(OVERLAPPED *pOverlapped, BYTE *pEventBuffer)
virtual DWORD OnLinkKeyNotification(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE LinkKey[FBT_HCI_LINK_KEY_SIZE])
virtual DWORD SendWriteAuthenticationEnable(BYTE ScanEnable)
HANDLE m_hListenerReadyEvent
virtual DWORD OnRemoteNameRequestComplete(BYTE Status, BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE RemoteName[FBT_HCI_NAME_SIZE])
virtual DWORD SendPINCodeRequestReply(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE PINCodeLength, BYTE PINCode[FBT_HCI_PIN_CODE_SIZE])
virtual DWORD OnRoleChange(BYTE Status, BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE Role)
virtual DWORD OnInquiryResult(BYTE NumResponses, BYTE BD_ADDR[FBT_HCI_VARIABLE_SIZE][FBT_HCI_BDADDR_SIZE], BYTE PageScanRepetitionMode[FBT_HCI_VARIABLE_SIZE], BYTE PageScanPeriodMode[FBT_HCI_VARIABLE_SIZE], BYTE PageScanMode[FBT_HCI_VARIABLE_SIZE], BYTE ClassOfDevice[FBT_HCI_VARIABLE_SIZE][FBT_HCI_DEVICE_CLASS_SIZE], USHORT ClockOffset[FBT_HCI_VARIABLE_SIZE])
virtual DWORD SendHciCommand(PFBT_HCI_CMD_HEADER lpCommand, DWORD dwBufferSize)
static friend DWORD EventHandler(PFBT_HCI_EVENT_HEADER pEvent, DWORD Length)
virtual DWORD OnDisconnectionComplete(BYTE Status, USHORT ConnectionHandle, BYTE Reason)
static LPCTSTR GetManufacturerName(USHORT Company)
virtual DWORD OnConnectionRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], ULONG ClassOfDevice[FBT_HCI_DEVICE_CLASS_SIZE], BYTE LinkType)
virtual DWORD SendWriteLinkSupervisionTimeout(USHORT ConnectionHandle, USHORT LinkSupervisionTimeout)
virtual DWORD OnInquiryComplete(BYTE Status, BYTE NumResponses)
virtual DWORD SendReadClassOfDevice(void)
virtual DWORD SendSwitchRole(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE Role)
virtual DWORD SendReadLocalName(void)
virtual DWORD StartEventListener(void)
#define FBT_HCI_BDADDR_SIZE
#define FBT_HCI_EVENT_MAX_SIZE
#define FBT_HCI_DEVICE_CLASS_SIZE
#define FBT_HCI_MAX_CONDITION_SIZE
#define FBT_HCI_LINK_KEY_SIZE
#define FBT_HCI_NAME_SIZE
#define FBT_HCI_VARIABLE_SIZE
#define FBT_HCI_PIN_CODE_SIZE
#define HCI_NUMBER_OF_OVERLAPPED_LISTENS
struct HCI_EVENT * PHCI_EVENT
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
IN ULONG IN UCHAR Condition
_In_ ULONG _In_ ULONG _In_ ULONG Length
PFBT_HCI_EVENT_HEADER pEvent
_In_ ULONG ParameterLength
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters