Функция GrdPI_Deactivate деактивирует аппаратный алгоритм или защищенную ячейку.

 

{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
int GRD_API GrdPI_Deactivate(	
  HANDLE hGrd,
  DWORD dwItemNum,
  DWORD dwDeactivatePsw
);	
{dojo-tab}
{dojo-tab:title=C#|selected=true}
*C#*

{dojo-tab}
{dojo-tab:title=Visual Basic (Declaration)}
*Visual Basic*

{dojo-tab}
{dojo-tab:title=Visual C++}
*Visual C++*

{dojo-tab}
{dojo-tabs}

hGrd

хэндл защищенного контейнера для выполнения деактивации

dwItemNum

номер аппаратного алгоритма или защищенной ячейки для деактивации

dwDeactivatePsw

пароль для дективации. Если пароль не используется, параметр должен быть равен 0

Возможные ошибки

GrdE_AccessDenied

неверный пароль деактивации, доступ к ячейке запрещен

GrdE_StatusUnchangeable

достигнут лимит количества ошибок, статус ячейки изменить нельзя

GrdE_NoService

для данного типа ячейки не предусмотрена деактивация

 

Стандартный набор ошибок

Функция GrdPI_Deactivate деактивирует аппаратный алгоритм или любую другую защищенную ячейку. Деактивацию ячейки можно производить в том случае, когда она была создана активной или была активирована через GrdPI_Activate. Для деактивации можно потребовать указать пароль активации dwDeactivatePsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию.

Если алгоритм или ячейка находятся в деактивированном состоянии, функция возвращает GrdE_OK вне зависимости от правильности пароля деактивации.

Если при попытке деактивации активной ячейки был указан неверный пароль dwDeactivatePsw, функция GrdPI_Deactivate возвращает ошибку GrdE_AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, функция GrdTransform будет нормально работать.

Пример для используемого средства разработки см. в директории:

"\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\"
или
"\%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x64\Win64\General Guardant API\"