Структура используемая в функции 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
{
/// <summary>
/// Общий код доступа
/// </summary>
public uint dwPublicCode;
/// <summary>
/// Версия прошивки ключа
/// </summary>
public byte byHrwVersion;
/// <summary>
/// Максимальный сетевой ресурс
/// </summary>
public byte byMaxNetRes;
/// <summary>
/// Тип ключа
/// </summary>
public ushort wType;
/// <summary>
/// ID
/// </summary>
public uint dwID;
// Following fields are available from UAM mode
/// <summary>
/// Номер продукта
/// </summary>
public byte byNProg;
/// <summary>
/// Версия продукта
/// </summary>
public byte byVer;
/// <summary>
/// Серийный номер
/// </summary>
public ushort wSN;
/// <summary>
/// Маска
/// </summary>
public ushort wMask;
/// <summary>
/// Счетчик запусков
/// </summary>
public ushort wGP;
/// <summary>
/// Назначенный сетевой ресурс ключа
/// </summary>
public ushort wRealNetRes;
/// <summary>
/// Индекс
/// </summary>
public uint dwIndex;
// Информация только для Stealth III
/// <summary>
/// Reserved memory for future use
/// </summary>
public fixed byte abyReservedISEE[28];
/// <summary>
/// Stealth III write protect address
/// </summary>
public ushort wWriteProtectS3;
/// <summary>
/// Stealth III read protect address
/// </summary>
public ushort wReadProtectS3;
/// <summary>
/// Global Stealth III flags. Reserved.
/// </summary>
public ushort wGlobalFlags;
/// <summary>
/// Dongle State. See GrdDSF_XXX definition
/// </summary>
public uint dwDongleState;
// Available since:
// 1. Stealth Sign.(Firmware number >= 0x01000011h or 01.00.00.11)
// 2. Guardant Code.
/// <summary>
/// Old firmware number(before SFU).
/// </summary>
public uint dwOldMPNum;
/// <summary>
/// Reserved memory for future use // 0xc0 192
/// </summary>
public fixed byte abyReservedH[188];
// Reserved info from gsA
// Driver info
/// <summary>
/// Платформа (Win32/Win64)
/// </summary>
public uint dwGrDrv_Platform;
/// <summary>
/// Версия драйвера
/// </summary>
public uint dwGrDrv_Vers;
/// <summary>
/// Сборка драйвера
/// </summary>
public uint dwGrDrv_Build;
/// <summary>
/// Зарезервированое значение
/// </summary>
public uint dwGrDrv_Reserved;
// dongle info
/// <summary>
/// Адрес пользователя
/// </summary>
public uint dwRkmUserAddr;
/// <summary>
/// Адрес алгоритма
/// </summary>
public uint dwRkmAlgoAddrW;
/// <summary>
/// Адрес порта (0, если USB)
/// </summary>
public uint dwPrnPort;
/// <summary>
/// Версия клиента
/// </summary>
public uint dwClientVersion;
// SAP start
/// <summary>
/// Тип ключа
/// </summary>
public uint dwRFlags;
/// <summary>
/// Версия программы
/// </summary>
public uint dwRProgVer;
/// <summary>
///
/// </summary>
public uint dwRcn_rc;
/// <summary>
///
/// </summary>
public uint dwNcmps;
/// <summary>
///
/// </summary>
public uint dwNSKClientVersion;
/// <summary>
/// Модель ключа
/// </summary>
public uint dwModel;
/// <summary>
/// Тип MCU
/// </summary>
public uint dwMcuType;
/// <summary>
/// Тип памяти ключа
/// </summary>
public uint dwMemoryType;
// Reserved memory for future use
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;
}