C++ 在Citrix终端会话中捕获新智能卡读卡器的到来

C++ 在Citrix终端会话中捕获新智能卡读卡器的到来,c++,citrix,smartcard-reader,winscard,C++,Citrix,Smartcard Reader,Winscard,根据MSDN,有一个特殊的虚拟读卡器\?PNP?\通知,允许通过函数获取新智能卡读卡器到达的通知。 我的代码看起来像是错误处理,省略了检查: while (true) { SCardGetStatusChange(hContext, INFINITE, rgReaderStates, cReaders); // rgReaderStates[0] - \\?PNP?\Notification WorkWithNewReader(); } 这段代码在非终端会话上非常有效。

根据MSDN,有一个特殊的虚拟读卡器\?PNP?\通知,允许通过函数获取新智能卡读卡器到达的通知。 我的代码看起来像是错误处理,省略了检查:

while (true)
{
    SCardGetStatusChange(hContext, INFINITE, rgReaderStates, cReaders);
    // rgReaderStates[0] - \\?PNP?\Notification
    WorkWithNewReader();
}
这段代码在非终端会话上非常有效。 但通过Citrix终端会话函数SCardGetStatusChange立即返回,rgReaderStates[0]。dwEventState为7 SCARD_STATE_未知。
那么,我如何才能收到插入新智能卡读卡器的通知呢?

我无法回答,但在我的工作场所,将智能卡用于虚拟或远程设备被证明是非常不可靠的。