Функция(метод) GrdCreateHandle создает защищенный контейнер.
Синтаксис
Deck of Cards |
---|
|
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} | Входные параметры | hGrd | указатель на область памяти, зарезервированной для защищенного контейнера | dwMode | режим |
|
| создания контейнера - монопольный или многопоточнный. В качестве значений используются константы GrdCHM_XXXXX |
GrdCHM_SingleThread | Контейнер создается для работы в монопольном режиме |
GrdCHM_MultiThread | Контейнер может быть использован для одновременной работы с ним из нескольких потоковработы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM_MultiThread, так как всегда используется режим одновременной работы из нескольких потоков. | pReserved | зарезервировано. Параметр |
|
|
pReserved Выходные параметрыВозвращаемое значение функции |
| Хэндл защищенного контейнера. Если hGrd был задан равным NULL, то есть функция должна была зарезервировать память для контейнера самостоятельно, а в процессе создания защищенного контейнера возникла ошибка, функция вернет NULL. |
Expand |
---|
| Если hGrd равен NULL, то функция выделяет |
| память под контейнер самадинамическую память для создания контейнера. В противном случае контейнер будет размещен в памяти по тому адресу, который указан в параметре hGrd. Размер этого блока памяти во избежание ошибок должен быть не меньше значения константы GrdContainerSize. |
|
Guardant API может вызываться из различных потоков одного и того же приложения. В таких случаях необходимо синхронизировать вызовы, чтобы разные потоки не мешали друг другу. Параметр dwMode указывает, в каком режиме будет работать хэндл, в монопольном или многопоточном. Для удобства определены константы, которые можно использовать в качестве значений параметра dwMode. При создании защищенного контейнера, внутри API создается критическая секция, через которую происходит синхронизация обращений к ключу из разных потоков. |
|
Card |
---|
| Code Block |
---|
| public static Handle GrdCreateHandle(GrdCHM Mode)
|
Expand |
---|
| Mode [in] Тип: GrdCHM режим работы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM.MultiThread, так как всегда используется режим одновременной работы из нескольких потоков. |
Expand |
---|
title | Возвращаемое значение метода |
---|
| Хэндл защищенного контейнера. Тип: Handle |
Expand |
---|
| Защищённый контейнер всегда создаётся в динамической памяти. При |
| При создании защищенного контейнера, внутри API создается критическая секция, через которую происходит синхронизация обращений к ключу из разных потоков. |
| Использовать режим многопоточности рекомендуется только в тех случаях, когда работа с ключом действительно будет производиться из нескольких потоков. В остальных случаях следует создавать защищенный контейнер для использования ключа в монопольном режиме. Card |
---|
| Code Block |
---|
| public static Handle GrdCreateHandle(GrdCHM Mode) |
Expand |
---|
| Mode [in] Тип: GrdCHM режим работы контейнера в многопоточной среде. Начиная с версии 6.31 этот параметр игнорируется и должен быть равен константе GrdCHM.MultiThread, так как всегда используется режим одновременной работы из нескольких потоков. |
|
| Пример | Пример для используемого средства разработки см. в директории:
"\%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 |
---|
| Защищённый контейнер всегда создаётся в динамической памяти. При создании защищенного контейнера, внутри API создается критическая секция, через которую происходит синхронизация обращений к ключу из разных потоков. |
|
|