Я не Windows разработчик, но время от времени поддерживаю некоторый Python код, который использует Bluetooth на Windows. У нас есть функция для отображения сообщения об ошибке пользователю:
static void Err_SetFromWSALastError(PyObject *exc)
{
LPVOID lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, WSAGetLastError(), 0, (LPTSTR) &lpMsgBuf, 0, NULL );
PyErr_SetString( exc, lpMsgBuf );
LocalFree(lpMsgBuf);
}
Если стек Bluetooth возвращает ошибку, подобную этой, задокументировано здесь :
WSAESHUTDOWN (10058): Канал L2CAP, отключенный удаленным узлом.
Эта функция разрешает сообщение об ошибке в более общую c ошибку сокета, задокументированную здесь :
WSAESHUTDOWN (10058): Запрос на отправку или получение данных был отклонен, поскольку сокет уже был отключен в этом направлении при предыдущем вызове завершения работы.
Сообщение об ошибке Bluetooth-speci c является намного более полезным. Есть ли функция API, которая будет его возвращать, или мне нужно будет создать собственную таблицу поиска сообщений об ошибках?