| Предыдущий | Следующий |
| EVT_WDSMCS_E_NSREG_FAILURE | WDSTPC_E_ALREADY_COMPLETED |
WDSTPC_E_CALLBACKS_NOT_REG
WDSTPC_E_CALLBACKS_NOT_REG является ошибкой жизненного цикла WDS Transport Client. Клиентский API требует завершить регистрацию обратных вызовов до WdsTransportClientStartSession; после запуска сеанса регистрировать дополнительные обратные вызовы нельзя.
Сформируйте таблицу обратных вызовов до запуска сеанса
- Вызовите
WdsTransportClientRegisterCallbackдля каждого обратного вызова, требуемого потребителю, до вызова запуска. - Записывайте каждый
TRANSPORTCLIENT_CALLBACK_IDи результат регистрации; не считайте ненулевой указатель функции в состоянии приложения доказательством успеха. - Отделяйте необязательную обработку метаданных от обязательных обратных вызовов сеанса, данных и завершения.
Microsoft явно документирует порядок и для регистрации, и для запуска. Правильное исправление — не повторять StartSession в цикле, а сначала определить отсутствующую регистрацию обратного вызова или более раннюю ошибку регистрации. Полезная трассировка последовательно записывает инициализацию, создание сеанса, каждый ID обратного вызова и переход запуска, чтобы были видны гонки в многопоточном коде оболочки.
Контракт RegisterCallback · Контракт StartSession · Клиентский API WDS
Нужно найти другой код? Найти другой код состояния или ошибки.