Функция(метод) GrdCreateHandle создает защищенный контейнер.
Синтаксис
Deck of Cards |
---|
|
Expand |
---|
|
|
hGrd | указатель на область памяти, зарезервированной для защищенного контейнера |
dwMode | режим создания контейнера - монопольный или многопоточнный. В качестве значений используются константы GrdCHM_XXXXX
GrdCHM_SingleThread | Контейнер создается для работы в монопольном режиме |
GrdCHM_MultiThread | Контейнер может быть использован для одновременной работы с ним из нескольких потоков Card |
---|
|
Code Block |
---|
| HANDLE GRD_API GrdCreateHandle(
HANDLE hGrd,
DWORD dwMode,
void *pReserved
); |
Expand |
---|
| hGrd | указатель на область памяти, зарезервированной для защищенного контейнера | dwMode | режим создания контейнера - монопольный или многопоточнный. В качестве значений используются константы GrdCHM_XXXXX GrdCHM_SingleThread | Контейнер создается для работы в монопольном режиме | GrdCHM_MultiThread | Контейнер может быть использован для одновременной работы с ним из нескольких потоков |
| pReserved | зарезервировано. Параметр pReserved должен быть равен NULL |
|
Expand |
---|
title | Возвращаемые значения |
---|
| Хэндл защищенного контейнера. Если hGrd был задан равным NULL, то есть функция должна была зарезервировать память для контейнера самостоятельно, а в процессе создания защищенного контейнера возникла ошибка, функция вернет NULL. |
|
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} |
работы контейнера в многопоточной среде. Начиная с версии 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 создается критическая секция, через которую происходит синхронизация обращений к ключу из разных потоков. |
|
|