Функция GcaCodeRun исполняет код, загруженный в ключ, из другого участка загруженного кода.
{dojo-tabs:theme=tundra|id=1} {dojo-tab:title=C|selected=true} *C* int GRD_API GcaCodeRun( HANDLE hGrd, DWORD dwAlgoName, DWORD dwP1, DWORD *pdwRet, DWORD dwDataFromDongleLng, void *pDataFromDongle, DWORD dwDataToDongleLng, void *pDataToDongle, 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} |
|
Функция GcaCodeRun аналогична GrdCodeRun из внешнего Guardant API, она служит для запуска кода, предварительно загруженного в ключ, из другого участка загруженного в ключ кода. При использовании GcaCodeRun, области ОЗУ запускающего и запускаемого загружаемого кода не должны пересекаться или совпадать для предотвращения затирания общей памяти. Рекурсия запрещена. При попытке вызова GcaCodeRun в описанных выше ситуациях возвращается код ошибки GrdE_gcRamAccessViolation. Глубина таких вызовов равна 1. Таким образом, при попытке запуска загружаемого кода из другого загружаемого кода, запущенного, в свою очередь, с помощью GcaCodeRun, возвращается код ошибки GrdE_gcCallDepthOverflow. В main-функцию пользовательского кода передается параметр dwP1 и буфер данных pDataToDongle. По завершению работы main-функции пользовательского кода, она возвращает pdwRet и буфер данных pDataToDongle. Время работы main функции пользовательского кода ограничено 3 сек по умолчанию, если иное не задано GcaSetTimeout. |
См. директорию: |