Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Composition Setup
 

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

 

Синтаксис

Deck of Cards
id001
Wiki Markup
{dojo-tabs:theme=tundra|id=1} {dojo-tab:title=C|selected=true} *C*
Card
defaulttrue
labelC
Code Block
languagecpp
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

работы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM_MultiThread, так как всегда используется режим одновременной работы из нескольких потоков. 

pReserved

зарезервировано. Параметр

pReserved

должен быть равен NULL

Expand
title
Выходные параметры
Возвращаемое значение функции

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

Expand
titleОписание

Если hGrd равен NULL, то функция выделяет

память под контейнер сама

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

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

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

Card
labelC#
Code Block
languagec#
public static Handle GrdCreateHandle(GrdCHM Mode)

Expand
titleПараметры метода

Mode [in] 

Тип: GrdCHM

режим работы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM.MultiThread, так как всегда используется режим одновременной работы из нескольких потоков.

Expand
titleВозвращаемое значение метода

Хэндл защищенного контейнера.

Тип: Handle

Expand
titleОписание

Защищённый контейнер всегда создаётся в динамической памяти. При

При

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

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

Card
labelJava
Code Block
languagejava
 public static Handle GrdCreateHandle(GrdCHM Mode)
Expand
titleПараметры метода

Mode [in] 

Тип: GrdCHM

режим работы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM.MultiThread, так как всегда используется режим одновременной работы из нескольких потоков.

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\"
Возвращаемое значение метода

Хэндл защищенного контейнера.

Тип: Handle

Expand
titleОписание

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