Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Функция GrdCreateHandle создает защищенный контейнер.

 

Wiki Markup
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
HANDLE GRD_API GrdCreateHandle(	
  HANDLE hGrd,
  DWORD dwMode,
  void *pReserved 
);	
{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}
Expand
titleВходные параметры

hGrd

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

dwMode

режим создания контейнера - монопольный или многопоточнный. В качестве значений используются константы GrdCHM_XXXXX

GrdCHM_SingleThread

Контейнер создается для работы в монопольном режиме

GrdCHM_MultiThread

Контейнер может быть использован для одновременной работы с ним из нескольких потоков

pReserved

зарезервировано. Параметр pReserved должен быть равен NULL

Expand
titleВыходные параметры

Хэндл защищенного контейнера. Если hGrd был задан равным NULL, то есть функция должна была зарезервировать память для контейнера самостоятельно, а в процессе создания защищенного контейнера возникла ошибка, функция вернет NULL.

Expand
titleОписание

Если hGrd равен NULL, то функция выделяет память под контейнер сама. В противном случае контейнер будет размещен в памяти по тому адресу, который указан в параметре hGrd. Размер этого блока памяти во избежание ошибок должен быть не меньше значения константы GrdContainerSize.

Guardant API может вызываться из различных потоков одного и того же приложения. В таких случаях необходимо синхронизировать вызовы, чтобы разные потоки не мешали друг другу. Параметр dwMode указывает, в каком режиме будет работать хэндл, в монопольном или многопоточном. Для удобства определены константы, которые можно использовать в качестве значений параметра dwMode.

При создании защищенного контейнера, внутри API создается критическая секция, через которую происходит синхронизация обращений к ключу из разных потоков. Использовать режим многопоточности рекомендуется только в тех случаях, когда работа с ключом действительно будет производиться из нескольких потоков. В остальных случаях следует создавать защищенный контейнер для использования ключа в монопольном режиме.

Expand
titleПример

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

"\%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\"