Versions Compared

Key

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

...

Deck of Cards
id001
Card
defaulttrue
labelC
Code Block
languagecpp
int GRD_API GrdFind(	
  HANDLE hGrd,
  DWORD dwMode,
  DWORD *pdwID,
  TGrdFindInfo *pFindInfo
);	
Expand
titleПараметры функции

hGrd

хэндл, через который будет выполнен поиск

dwMode

режим поиска. Устанавливается константами GrdF_XXX. Значение GrdF_First нужно использовать при первом вызове GrdFind после того, как были установлены критерии поиска функцией GrdSetFindMode. При всех последующих вызовах до изменения критериев поиска нужно использовать значение GrdF_Next.

GrdF_First

Первый вызов

GrdF_Next

Следующий вызов

Expand
titleВозвращаемое значение функции

pdwID

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

pFindInfo

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

typedef struct
{
DWORD dwPublicCode; // Общий код доступа в числовом виде
BYTE byHrwVersion; // Аппаратная версия ключа (биты 0 -3: minor, биты 4 - 7: major)
BYTE byMaxNetRes; // Максимальный ресурс лицензий сетевого ключа (программируется компанией "Актив" при продаже ключа)
WORD wType; // Флаги типа ключа
DWORD dwID; // ID ключа (программируется компанией "Актив" при продаже ключа)


// Группа полей, доступных в режиме адресации UAM
BYTE byNProg; // Номер программы
BYTE byVer; // Версия программы
WORD wSN; // Серийный номер
WORD wMask; // Битовая маска
WORD wGP; // Счетчик GP (устаревшая технология, не используется)
WORD wRealNetRes; // Текущий ресурс лицензий сетевого ключа. Задается разработчиком, должен быть <= byMaxNetRes
DWORD dwIndex; // Индекс, используемый утилитами удаленного программирования


// Только для современных ключей (Stealth III и старше)
BYTE abyReservedISEE[0x1C]; // Зарезервировано
WORD wWriteProtectS3; // SAM-адрес 1-го байта, доступного для записи. Если 0, запреты на запись отсутствуют.
WORD wReadProtectS3; // SAM-адрес 1-го байта, доступного для чтения. Если 0, запреты на чтение отсутствуют.
WORD wGlobalFlags; // Глобальные флаги
DWORD dwDongleState; // Dongle State. See GrdDSF_XXX definition
BYTE abyReservedH[0x100 - 0x1A - 0x1C - 0x0A]; // Reserved. For align to 0x100


// Информация о драйвере
DWORD dwGrDrv_Platform; // Разрядность драйвера (Win32/Win64)
DWORD dwGrDrv_Vers; // Версия драйвера (0x05401234=5.40.12.34)
DWORD dwGrDrv_Build; // Сборка драйвера
DWORD dwGrDrv_Reserved; // Зарезервировано


// Информация о ключе
DWORD dwRkmUserAddr; // Адрес начала пользовательской памяти в 2-хбайтовых словах
DWORD dwRkmAlgoAddrW; // Адрес таблицы размещения защищенных ячеек в словах
DWORD dwPrnPort; // Адрес LPT-порта (или 0, если ключ - USB)
DWORD dwClientVersion; // Reserved Dongle client version


// SAP start
DWORD dwRFlags; // Reserved Type of MCU
DWORD dwRProgVer; // Reserved Program version (in MCU)
DWORD dwRcn_rc; // Reserved curr_num & answer code
DWORD dwNcmps; // Reserved Number of compare conditions
DWORD dwNSKClientVersion; // Reserved Client version (low byte - minor, hi - major)
DWORD dwModel; // Модель ключа
DWORD dwMCUType; // Тип ключа
DWORD dwMemoryType; // Тип памяти ключа


// Зарезервировано
BYTE abyReserved[0x200 - 0x100 - 0x38]; // Reserved. For align to 0x200
} TGrdFindInfo;

Возможные ошибки

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

 

GrdE_NeedLogout

Попытка вызова GrdFind после GrdLogin

Card
labelC#
Code Block
languagec#
public static GrdE GrdFind(Handle grdHandle, GrdF mode, out uint id, out FindInfo findInfo)
Expand
titleПараметры метода

 

Expand
titleВозвращаемое значение метода

 

Card
labelJava
Code Block
languagejava
  public static GrdE GrdFind(Handle grdHandle, GrdF mode, GrdDongleID id, GrdFindInfo findInfo)
Expand
titleПараметры метода

 

Expand
titleВозвращаемое значение метода

 

...