<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; Ограничение в драйверах/SDK ?]]></title>
		<link>https://forum.guardant.ru/topic/230/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/230/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Ограничение в драйверах/SDK ?».]]></description>
		<lastBuildDate>Thu, 25 Oct 2012 18:15:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Ограничение в драйверах/SDK ?]]></title>
			<link>https://forum.guardant.ru/post/1092/#p1092</link>
			<description><![CDATA[<p>Развивая тему. Такая программа падает на 10 шаге:<br /></p><div class="codebox"><pre><code>int X = 10000;
int Y = 4000;
for (i = 0; i &lt; 100; ++i) {
    VERIFY_GRD(GrdLock(guardant_handle, 0, X, GrdLM_All));
    Sleep(Y);
}</code></pre></div><p>Если взять равные X и Y, (например 50 и 50) - цикл исполнится полностью.<br />В алгоритме, который я пытаюсь реализовать, важно что X в 1,5... 2 раза больше Y, тоесть поток постоянно держит ключ в блокированном состоянии.</p><p>PS: Забыл указать - использую GuardantAPI 6.1, работаю с ключиками GuardantCode, но ведб модель ключа не принципиальна для функций GrdLock и GrdUnlock?</p>]]></description>
			<author><![CDATA[null@example.com (Ираклий)]]></author>
			<pubDate>Thu, 25 Oct 2012 18:15:03 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/1092/#p1092</guid>
		</item>
		<item>
			<title><![CDATA[Ограничение в драйверах/SDK ?]]></title>
			<link>https://forum.guardant.ru/post/1091/#p1091</link>
			<description><![CDATA[<p>Исследую GrdLock() с установленным dwTimeoutAutoUnlock, наблюдаю интересный эффект, не отраженный в документации. Если выполнять вот такой код:</p><div class="codebox"><pre><code>    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));</code></pre></div><p>То, вне зависимости от выбора dwTimeoutWaitForUnlock / dwTimeoutAutoUnlock падаем на одной и той же строке с ошибкой 23: &quot;Guardant dongle locked by another copy of protected application&quot;. <br />Это зашитое ограничение?</p>]]></description>
			<author><![CDATA[null@example.com (Ираклий)]]></author>
			<pubDate>Thu, 25 Oct 2012 17:10:54 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/1091/#p1091</guid>
		</item>
	</channel>
</rss>
