BluetoothAuthenticateDeviceEx 函数 (bluetoothapis.h)
BluetoothAuthenticateDeviceEx 函数将身份验证请求发送到远程蓝牙设备。 此外,此函数允许将带外数据传递到要进行身份验证的设备函数调用中。
语法
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。
[in] authenticationRequirement
一个BLUETOOTH_AUTHENTICATION_REQUIREMENTS值,该值指定身份验证所需的保护。
返回值
成功完成后返回ERROR_SUCCESS;失败时返回以下错误代码:
返回代码 | 说明 |
---|---|
|
用户中止了操作。 |
|
pbdti 中指定的设备结构无效。 |
|
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 |