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

Expand
titleОписание

Функция GrdFind осуществляет поиск локального или удаленного ключа, удовлетворяющего критериям поиска, установленным при последнем вызове GrdSetFindMode и возвращает ошибку GrdE_OK и ID этого ключа, в том случае, если такой ключ найден, а также структуру TGrdFindInfo, содержащую данные о найденном ключе. Если производится поиск сетевого ключа, функция GrdFind опрашивает все сервера Guardant Net, доступные для данной копии приложения в соответствии с параметрами установленными в конфигурационном файле gnclient.ini. Если производится поиск локальных ключей, то функция обнаруживает только те ключи, которые подключены непосредственно к данной рабочей станции.

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

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

Если GrdFind вызвать до установки Общего кода (Public Code), см. GrdSetAccessCodes, то будут найдены все доступные ключи Guardant с любыми кодами. После вызова GrdSetAccessCodes функция GrdFind будет искать только ключи с заданным Общим кодом.

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Возвращаемое значение метода

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

Expand
titleОписание

Функция GrdFind осуществляет поиск локального или удаленного ключа, удовлетворяющего критериям поиска, установленным при последнем вызове GrdSetFindMode и возвращает ошибку GrdE_OK и ID этого ключа, в том случае, если такой ключ найден, а также структуру TGrdFindInfo, содержащую данные о найденном ключе. Если производится поиск сетевого ключа, функция GrdFind опрашивает все сервера Guardant Net, доступные для данной копии приложения в соответствии с параметрами установленными в конфигурационном файле gnclient.ini. Если производится поиск локальных ключей, то функция обнаруживает только те ключи, которые подключены непосредственно к данной рабочей станции.

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

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

Если GrdFind вызвать до установки Общего кода (Public Code), см. GrdSetAccessCodes, то будут найдены все доступные ключи Guardant с любыми кодами. После вызова GrdSetAccessCodes функция GrdFind будет искать только ключи с заданным Общим кодом.

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

grdHandle [in] 

Тип: Handle

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

mode [in]

Тип: GrdF

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

id [out]

Тип: GrdDongleID

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

findinfo [out]

Тип: GrdFindInfo

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

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

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

Expand
titleОписание

Функция GrdFind осуществляет поиск локального или удаленного ключа, удовлетворяющего критериям поиска, установленным при последнем вызове GrdSetFindMode и возвращает ошибку GrdE_OK и ID этого ключа, в том случае, если такой ключ найден, а также структуру TGrdFindInfo, содержащую данные о найденном ключе. Если производится поиск сетевого ключа, функция GrdFind опрашивает все сервера Guardant Net, доступные для данной копии приложения в соответствии с параметрами установленными в конфигурационном файле gnclient.ini. Если производится поиск локальных ключей, то функция обнаруживает только те ключи, которые подключены непосредственно к данной рабочей станции.

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

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

Если GrdFind вызвать до установки Общего кода (Public Code), см. GrdSetAccessCodes, то будут найдены все доступные ключи Guardant с любыми кодами. После вызова GrdSetAccessCodes функция GrdFind будет искать только ключи с заданным Общим кодом.

...