Ограничение в драйверах/SDK ?
Исследую GrdLock() с установленным dwTimeoutAutoUnlock, наблюдаю интересный эффект, не отраженный в документации. Если выполнять вот такой код:
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All)); // здесь падаем
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
VERIFY_GRD(GrdLock(guardant_handle, 100, 2000, GrdLM_All));
То, вне зависимости от выбора dwTimeoutWaitForUnlock / dwTimeoutAutoUnlock падаем на одной и той же строке с ошибкой 23: "Guardant dongle locked by another copy of protected application".
Это зашитое ограничение?