Структура используемая в функции GrdApi.GrdFind для получения информации об электронном ключе
Пространство имен: Guardant
Синтаксис
#pragma pack(push,1)
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; // Индекс, используемый утилитами удаленного программирования
BYTE abyReservedISEE[0x1C]; // Зарезервированная память для будущего использования
WORD wWriteProtectS3; // SAM-адрес 1-го байта, доступного для записи. Если 0, запреты на запись отсутствуют.
WORD wReadProtectS3; // SAM-адрес 1-го байта, доступного для чтения. Если 0, запреты на чтение отсутствуют.
WORD wGlobalFlags; // Глобальные флаги
DWORD dwDongleState; // Состояние ключа.см.GrdDSF_XXX определение // В наличии с: // 1. Stealth Sign.(Номер прошивки >= 0x01000011h or 01.00.00.11)// 2. Guardant Code.
DWORD dwOldMPNum; // Старый номер прошивки (перед SFU).
BYTE abyReservedH[0x100 - 0x1A - 0x1C - 0x0E]; // Зарезервированная память для будущего использования
DWORD dwGrDrv_Platform; // Разрядность драйвера.Платформа (Win32/Win64).
DWORD dwGrDrv_Vers; // Версия драйвера(0х05401234=5.40.12.34)
DWORD dwGrDrv_Build; // Сборка драйвера
DWORD dwGrDrv_Reserved; // Зарезервированое значение
DWORD dwRkmUserAddr; // Адрес начала пользовательской памяти в 2-х байтовых словах
DWORD dwRkmAlgoAddrW; // Адрес таблицы размещения защищенных ячеек в словах
DWORD dwPrnPort; // Адрес LPT-порта (или 0, если ключ - USB)
DWORD dwClientVersion; // Зарезервированная версия клиента ключа // SAP start
DWORD dwRFlags; // Зарезервировано. Тип MCU
DWORD dwRProgVer; // Зарезервированная версия программы(в MCU)
DWORD dwRcn_rc; // Зарезервированный текущий номер и код ответа
DWORD dwNcmps; // Зарезервированный номер условий сравнения
DWORD dwNSKClientVersion; // Зарезервированная версия клиента (low byte - minor, hi - major)
DWORD dwModel; // Модель ключа
DWORD dwMcuType; // Тип ключа MCU
DWORD dwMemoryType; // Тип памяти ключа // Зарезервировано для будущего использования
BYTE abyReserved[0x200 - 0x100 - 0x28]; // Зарезервированная память для будущего использования.
} TGrdFindInfo;
#pragma pack(pop)
public unsafe struct FindInfo
{
public uint dwPublicCode; // Общий код доступа в числовом виде
public byte byHrwVersion; // Аппаратная версия ключа (биты 0 -3: minor, биты 4 - 7: major)
public byte byMaxNetRes; // Максимальный ресурс лицензий сетевого ключа (программируется компанией "Актив" при продаже ключа)
public ushort wType; // Флаги типа ключа
public uint dwID; // ID ключа (программируется компанией "Актив" при продаже ключа)// Соответствующие поля доступны из UAM режима
public byte byNProg; // Номер программы
public byte byVer; // Версия программы
public ushort wSN; // Серийный номер
public ushort wMask; // Битовая маска
public ushort wGP; // Счетчик запусков GP (устаревшая технология, не используется)
public ushort wRealNetRes; // Текущий ресурс лицензий сетевого ключа. Задается разработчиком, должен быть <= byMaxNetRes
public uint dwIndex; // Индекс, используемый утилитами удаленного программирования
public fixed byte abyReservedISEE[28];// Зарезервированная память для будущего использования
public ushort wWriteProtectS3; // SAM-адрес 1-го байта, доступного для записи. Если 0, запреты на запись отсутствуют.
public ushort wReadProtectS3; // SAM-адрес 1-го байта, доступного для чтения. Если 0, запреты на чтение отсутствуют
public ushort wGlobalFlags; // Глобальные флаги
public uint dwDongleState; // Состояние ключа.см.GrdDSF_XXX определение // В наличии с: // 1. Stealth Sign.(Номер прошивки >= 0x01000011h or 01.00.00.11)// 2. Guardant Code.
public uint dwOldMPNum; // Старый номер прошивки (перед SFU).
public fixed byte abyReservedH[188]; // Зарезервированная память для будущего использования
public uint dwGrDrv_Platform; // Разрядность драйвера.Платформа (Win32/Win64).
public uint dwGrDrv_Vers; // Версия драйвера(0х05401234=5.40.12.34)
public uint dwGrDrv_Build; // Сборка драйвера
public uint dwGrDrv_Reserved; // Зарезервированое значение
public uint dwRkmUserAddr; // Адрес начала пользовательской памяти в 2-х байтовых словах
public uint dwRkmAlgoAddrW; // Адрес таблицы размещения защищенных ячеек в словах
public uint dwPrnPort; // Адрес LPT-порта (или 0, если ключ - USB)
public uint dwClientVersion; // Зарезервированная версия клиента ключа // SAP start
public uint dwRFlags; // Зарезервировано. Тип MCU
public uint dwRProgVer; // Зарезервированная версия программы(в MCU)
public uint dwRcn_rc; // Зарезервированный текущий номер и код ответ
public uint dwNcmps; // Зарезервированный номер условий сравнения
public uint dwNSKClientVersion; // Зарезервированная версия клиента (low byte - minor, hi - major)
public uint dwModel; // Модель ключа
public uint dwMcuType; // Тип ключа MCU
public uint dwMemoryType; // Тип памяти ключа // Зарезервировано для будущего использования
public fixed byte abyReserved[216]; // Зарезервированная память для будущего использования.
}
public class GrdFindInfo
{
/** Общий код доступа*/
public int mPublicCode;
/** Версия прошивки ключа */
public byte mHrwVersion;
/** Максимальный сетевой ресурс*/
public byte mMaxNetRes;
/** Dongle type flags */
public short mType;
/** Dongle's ID (unique) */
public int mID;
// Following fields are available from UAM mode
/** Номер продукта */
public byte mProg;
/** Версия продукта */
public byte mVer;
/** Серийный номер (Serial number) */
public short mSN;
/** Маска (Bit mask) */
public short mMask;
/** Счетчик запусков (Executions GP counter/ License time counter) */
public short mGP;
/** Назначенный сетевой ресурс ключа */
public short mRealNetRes;
/** Индекс */
public int mIndex;
// Only Stealth III info
/** Stealth III write protect address */
public short mWriteProtectS3;
/** Stealth III read protect address */
public short mReadProtectS3;
/** Global dongle flags for Sign\Time or higher dongles. See GrdGF_xxx definition. */
public short mGlobalFlags;
/** Dongle State. See GrdDSF_XXX definition */
public int mDongleState;
// Available since:
// 1. Stealth Sign.(Firmware number >= 0x01000011h or 01.00.00.11)
// 2. Guardant Code.
/** */
public int mOldMPNum; // Old firmware number(before SFU).
// Reserved info from gsA
// Driver info
/** Reserved Driver platform (Win32/Win64) */
public int mGrDrv_Platform;
/** Reserved Driver version (0x04801234=4.80.12.34 */
public int mGrDrv_Vers;
/** Reserved Driver build */
public int mGrDrv_Build;
/** Reserved reserved */
public int mGrDrv_Reserved;
// dongle info
/** Reserved wkmUserAddr */
public int mRkmUserAddr;
/** Reserved wkmAlgoAddr */
public int mRkmAlgoAddrW;
/** Reserved Printer port address or 0 if it USB */
public int mPrnPort;
/** Reserved Dongle client version */
public int mClientVersion;
// SAP start
/** Reserved Type of MCU */
public int mRFlags;
/** Reserved Program version (in MCU) */
public int mRProgVer;
/** Reserved curr_num & answer code */
public int mRcn_rc;
/** Reserved Number of compare conditions */
public int mNcmps;
/** Reserved Client version (low byte - minor, hi - major) */
public int mNSKClientVersion;
/** Dongle Model */
public int mModel;
/** Dongle MCU Type */
public int mMcuType;
/** Dongle Memory Type */
public int mMemoryType;
}