Versions Compared

Key

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

Функция GcaCodeRun исполняет код, загруженный в ключ, из другого участка загруженного кода.

 

Входные параметрыСм. директорию:
"%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\ARM\"
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
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}
Expand
title
Параметры функции

hGrd

Не используется.

dwAlgoName

Числовое имя алгоритма

dwP1

Параметр, передаваемый в подфункцию (аналог main ) загружаемого кода.

pdwRet

Параметр, возвращаемый из подфункции (аналог main ) загружаемого кода.

dwDataFromDongleLng

Размер блока данных, получаемых из ключа

pDataFromDongle

Указатель на буфер для блока данных, получаемых из ключа

dwDataToDongleLng

Размер блока данных передаваемых в ключ.

pDataToDongle

Указатель на буфер для блока данных, передаваемых в ключ

pReserved

Зарезервировано. Должно быть NULL.

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

Набор ошибок Guardant API

Cтандартный набор ошибок

Expand
titleОписание

Функция GcaCodeRun аналогична GrdCodeRun из внешнего Guardant API, она служит для запуска кода, предварительно загруженного в ключ, из другого участка загруженного в ключ кода.

При использовании GcaCodeRun, области ОЗУ запускающего и запускаемого загружаемого кода не должны пересекаться или совпадать для предотвращения затирания общей памяти. Рекурсия запрещена. При попытке вызова GcaCodeRun в описанных выше ситуациях возвращается код ошибки GrdE_gcRamAccessViolation. Глубина таких вызовов равна 1. Таким образом, при попытке запуска загружаемого кода из другого загружаемого кода, запущенного, в свою очередь, с помощью GcaCodeRun, возвращается код ошибки GrdE_gcCallDepthOverflow.

В main-функцию пользовательского кода передается параметр dwP1 и буфер данных pDataToDongle. По завершению работы main-функции пользовательского кода, она возвращает pdwRet и буфер данных pDataToDongle.

Время работы main функции пользовательского кода ограничено 3 сек по умолчанию, если иное не задано GcaSetTimeout.

Expand
titleПример