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Параметры метода

grdHandle [in] 

Тип: Handle

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

mode [in]

Тип: GrdF

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

id [out]

Тип:  uint

ID найденного ключа.

findinfo [out]

Тип:  Findinfo

Данные о найденном ключе.

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

 

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

 

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

 

...