You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

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

    HANDLE GRD_API GrdCreateHandle(	
      HANDLE hGrd,
      DWORD dwMode,
      void *pReserved 
    );	

    hGrd

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

    dwMode

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

    GrdCHM_SingleThread

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

    GrdCHM_MultiThread

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

    pReserved

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

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

    public static Handle GrdCreateHandle(GrdCHM Mode)
    
    

    Mode [in] 

    Тип: GrdCHM

    режим создания контейнера - монопольный или многопоточнный

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

     public static Handle GrdCreateHandle(GrdCHM Mode)

    Mode [in] 

    Тип: GrdCHM

    режим создания контейнера - монопольный или многопоточнный

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

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

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

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

    • No labels