Сбой блокировки на IDirectDrawSurface7 во время сеансов RDP

Я поддерживаю старое приложение, которое, помимо прочего, отображает крошечные видеопотоки на экране. Приложение работает нормально, если вы не запускаете его при просмотре рабочего стола через RDP.

Когда мы идем, чтобы получить указатель записи через IDirectDrawSurface7«s Lock функция:

DDSURFACEDESC2 dsd;
ZeroMemory(&dsd, sizeof(dsd));
dsd.dwSize = sizeof(dsd);
hr = m_pSurface->Lock(NULL, &dsd, DDLOCK_NOSYSLOCK|DDLOCK_WRITEONLY/*|DDLOCK_DONOTWAIT*/, NULL);

Все работает нормально, если вы не подключены к системе через RDP. В этом случае блокировка не работает, с HRESULT из DDERR_WASSTILLDRAWING,

Замечания по Страница MSDN заявить, что эта ошибка должна возникать только в «условиях по умолчанию», когда флаг DDLOCK_DONOTWAIT используется, который я диагностически закомментировал.

Есть ли надежда, что это приложение будет работать на RDP 8 / Windows 7 без значительного изменения дизайна?

Такое поведение возникает при наличии открытого приложения и при подключении нового сеанса RDP, а также при запуске приложения через существующий сеанс RDP.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]