Используя эту документацию, я сделал следующее:
- Добавлен подводник в hkey_local_machine \ System \ currentControlset \ Control \ Terminal Server \ Addins < /code> на сервере < /li>
Добавлено a SOPKEY TO HKEY_CURRENT_USER \ Software \ Microsoft \ Server Client \ Default \ Addins на клиенте - Создал следующий клиент dll
#include
VOID VCAPITYPE ChannelInitEventFn(
LPVOID pInitHandle,
UINT event,
LPVOID pData,
UINT dataLength
)
{
}
VOID VCAPITYPE ChannelOpenEventFn(DWORD openHandle,
UINT event,
LPVOID pData,
UINT32 dataLength,
UINT32 totalLength,
UINT32 dataFlags);
extern "C" __declspec(dllexport) BOOL VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
LPVOID pInitHandle = nullptr;
CHANNEL_DEF pChannel[1];
// Set the virtual channel name
strcpy_s(pChannel[0].name, "test");
// Call VirtualChannelInit
UINT result = pEntryPoints->pVirtualChannelInit(&pInitHandle, pChannel, sizeof(pChannel), VIRTUAL_CHANNEL_VERSION_WIN2000, ChannelInitEventFn);
if (result != CHANNEL_RC_OK)
{
// Error handling...
}
LPDWORD pOpenHandle = nullptr;
UINT result2 = pEntryPoints->pVirtualChannelOpen(pInitHandle, pOpenHandle, const_cast("test"), ChannelOpenEventFn);
return true;
}
< /code>
Создал следующий код сервера < /li>
< /ol>
WTSVirtualChannelOpenEx(WTS_CURRENT_SESSION, "test", 0);
< /code>
Подключено к серверу с помощью удаленного рабочего стола < /li>
Запустите исполняемый сервер < /li> < /ol>
Несмотря на это, сервер по -прежнему говорит, что это неверный канал. < /p>
Любая помощь приветствуется, спасибо. < / п>
Подробнее здесь: https://stackoverflow.com/questions/767 ... ra-pinvoke