BluetoothAuthenticateDeviceEx 函数 (bluetoothapis.h)

BluetoothAuthenticateDeviceEx 函数将身份验证请求发送到远程蓝牙设备。 此外,此函数允许将带外数据传递到要进行身份验证的设备函数调用中。

注意 Windows Vista SP2 和 Windows 7 支持此 API。
 

语法

DWORD BluetoothAuthenticateDeviceEx(
  [in, optional] HWND                        hwndParentIn,
  [in, optional] HANDLE                      hRadioIn,
  [in, out]      BLUETOOTH_DEVICE_INFO       *pbtdiInout,
  [in, optional] PBLUETOOTH_OOB_DATA_INFO    pbtOobData,
  [in]           AUTHENTICATION_REQUIREMENTS authenticationRequirement
);

参数

[in, optional] hwndParentIn

父级身份验证向导的窗口。 如果 为 NULL,则向导将从桌面上父级显示。

[in, optional] hRadioIn

有效的本地单选句柄或 NULL。 如果 为 NULL,则将尝试所有无线电。 如果任何无线电成功,则调用将成功。

[in, out] pbtdiInout

指向描述要进行身份验证的设备 BLUETOOTH_DEVICE_INFO 结构的指针。

[in, optional] pbtOobData

指向要随此 API 调用一起提供的特定于设备的带外数据的指针。 如果 为 NULL,则显示 UI 以继续身份验证过程。 如果不是 NULL,则不显示 UI。

注意 如果使用 BluetoothRegisterForAuthenticationEx 注册回调,则不会显示 UI。
 

[in] authenticationRequirement

一个BLUETOOTH_AUTHENTICATION_REQUIREMENTS值,该值指定身份验证所需的保护。

返回值

成功完成后返回ERROR_SUCCESS;失败时返回以下错误代码:

返回代码 说明
ERROR_CANCELLED
用户中止了操作。
ERROR_INVALID_PARAMETER
pbdti 中指定的设备结构无效。
ERROR_NO_MORE_ITEMS
pbtdi 中的设备已标记为已验证。

注解

pbtdilInOut 指定的BLUETOOTH_DEVICE_INFO结构必须包含要进行身份验证的设备地址。 如果 pbtOobData 的值不为 NULL,则会尝试使用提供的带外数据对远程设备进行身份验证。

对于所有其他类型的身份验证,调用方应使用 BluetoothRegisterForAuthenticationEx 注册身份验证回调,然后使用 BluetoothSendAuthenticationResponseEx 响应相关身份验证方法。

示例

在以下示例代码中,已找到设备并使用 BluetoothAuthenticateDeviceEx 发送身份验证请求。

PBLUETOOTH_DEVICE_INFO pDeviceInfo; 
HRESULT status;
HANDLE hEvent = NULL;

HRESULT WINAPI AuthenticateService(){

	status = BluetoothAuthenticateDeviceEx( NULL,
					        NULL,
					        pDeviceInfo,
					        NULL,
					        MITMProtectionNotRequired );

	if ( ERROR_INVALID_PARAMETER == status ) {
		// goto Cleanup;
		// ...
		// Take cleanup action here,
		// ...
	}
//
// Wait for the Authentication callback to return before trying to unregister the handle
// Use an infinite timeout since the handle to the function that sets the event is being
// deleted
//

	if ( WAIT_FAILED == WaitForSingleObject(hEvent, INFINITE) ) {
        	status = GetLastError();
        	// goto Cleanup;
		// ...
		// Take cleanup action here,
		// ...
	}

      return status;
}

要求

要求
最低受支持的客户端 具有 SP2 的 Windows XP [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 bluetoothapis.h (包括 Bthsdpdef.h、BluetoothAPIs.h)
Library Bthprops.lib
DLL bthprops.cpl

另请参阅

BluetoothAuthenticateDevice