Card |
---|
| Code Block |
---|
| int GRD_API GrdFind(
HANDLE hGrd,
DWORD dwMode,
DWORD *pdwID,
TGrdFindInfo *pFindInfo
); |
Expand |
---|
| 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; |
Возможные ошибки |
Expand |
---|
| Функция 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 |
---|
| Code Block |
---|
| public static GrdE GrdFind(Handle grdHandle, GrdF mode, out uint id, out FindInfo findInfo) |
Expand |
---|
| grdHandle [in] Тип: Handle Хэндл, через который будет выполнен поиск. mode [in] Тип: GrdF Режим поиска. Устанавливается константами GrdF. Значение GrdF_.First нужно использовать при первом вызове GrdFind после того, как были установлены критерии поиска функцией GrdSetFindMode. При всех последующих вызовах до изменения критериев поиска нужно использовать значение GrdF_.Next. id [out] Тип: uint ID найденного ключа. findinfo [out] Тип: Findinfo FindInfo Данные о найденном ключе. |
Expand |
---|
| Функция Метод GrdFind осуществляет поиск локального или удаленного ключа, удовлетворяющего критериям поиска, установленным при последнем вызове GrdSetFindMode и возвращает ошибку GrdE_.OK и , а также ID этого ключа, в том случае, если такой ключ найден, а также структуру TGrdFindInfo GrdFindInfo, содержащую данные о найденном ключе. Если производится поиск сетевого ключа, функция метод GrdFind опрашивает все сервера Guardant Net, доступные для данной копии приложения в соответствии с параметрами установленными в конфигурационном файлеgnclient сетевых настроек клиента. ini. Если производится поиск локальных ключей, то функция метод обнаруживает только те ключи, которые подключены непосредственно к данной рабочей станции. При помощи метода GrdFind можно построить список ключей, удовлетворяющим критериям поиска, выполняя поиск последовательно и записывая данные о ключах в массив, до тех пор пока функция метод не вернет ошибку ошибки GrdE_.DongleNotFound или GrdE_.AllDonglesFound. Если не будет найдено ни одного ключа, удовлетворяющего критериям поиска, функция метод вернет ошибку GrdE_.DongleNotFoundG. После того, как список ключей построен, можно выбрать из них нужный и при дальнейшей работе использовать его, установив критерием поиска ID нужного ключа. При первом вызове GrdFind при вновь установленных функцией методом GrdSetFindMode критериях поиска в параметре dwMode mode следует установить значение GrdF_First, при всех последующих вызовах до изменения критериев поиска нужно устанавливать значение GrdF_Next. GrdFind необходимо вызывать в рамках блока инициализации, до вызова GrdLogin. При попытке вызова GrdFind на залогиненном хэндле будет возвращена ошибка GrdE_.NeedLogout. Если GrdFind вызвать до установки Общего кода (Public Code), см. GrdSetAccessCodes, то будут найдены все доступные ключи Guardant с любыми кодами. После вызова GrdSetAccessCodes функция метод GrdFind будет искать только ключи с заданным Общим кодом. |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdFind(Handle grdHandle, GrdF mode, GrdDongleID id, GrdFindInfo findInfo) |
Expand |
---|
| grdHandle [in] Тип: Handle Хэндл, через который будет выполнен поиск. mode [in] Тип: GrdF Режим поиска. Устанавливается константами GrdF. Значение GrdF_First нужно использовать при первом вызове GrdFind после того, как были установлены критерии поиска функцией GrdSetFindMode. При всех последующих вызовах до изменения критериев поиска нужно использовать значение GrdF_Next. id [out] Тип: GrdDongleID ID найденного ключа. findinfo [out] Тип: GrdFindInfo Данные о найденном ключе. |
Expand |
---|
| Функция Метод GrdFind осуществляет поиск локального или удаленного ключа, удовлетворяющего критериям поиска, установленным при последнем вызове GrdSetFindMode и возвращает ошибку GrdE_.OK и , а также ID этого ключа, в том случае, если такой ключ найден, а также структуру TGrdFindInfoкласс GrdFindInfo, содержащую содержащий данные о найденном ключе. Если производится поиск сетевого ключа, функция метод GrdFind опрашивает все сервера Guardant Net, доступные для данной копии приложения в соответствии с параметрами установленными в конфигурационном файлеgnclient сетевых настроек клиента.ini. Если производится поиск локальных ключей, то функция метод обнаруживает только те ключи, которые подключены непосредственно к данной рабочей станции. При помощи метода GrdFind можно построить список ключей, удовлетворяющим критериям поиска, выполняя поиск последовательно и записывая данные о ключах в массив, до тех пор пока функция метод не вернет ошибку ошибки GrdE_.DongleNotFound или GrdE_.AllDonglesFound. Если не будет найдено ни одного ключа, удовлетворяющего критериям поиска, функция метод вернет ошибку ошибку GrdE_.DongleNotFound. После того, как список ключей построен, можно выбрать из них нужный и при дальнейшей работе использовать его, установив критерием поиска ID нужного ключа. При первом вызове GrdFind при для вновь установленных функцией методом GrdSetFindMode критериях поиска в параметре dwMode mode следует установить значение GrdF_First, при всех последующих вызовах до изменения критериев поиска нужно устанавливать значение GrdF_Next. GrdFind необходимо вызывать в рамках блока инициализации, до вызова GrdLogin. При попытке вызова GrdFind на залогиненном хэндле будет возвращена ошибка GrdE_.NeedLogout. Если GrdFind вызвать до установки Общего кода (Public Code), см. GrdSetAccessCodes, то будут найдены все доступные ключи Guardant с любыми кодами. После вызова GrdSetAccessCodes функция метод GrdFind будет искать только ключи с заданным Общим кодом. |
|
|