You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Функция GrdRead производит считывание данных из памяти ключа.

 

C
int GRD_API GrdRead(
HANDLE hGrd,
DWORD dwAddr,
DWORD dwLng,
void *pData,
void *pReserved
);

C#

Visual Basic

Visual C++

hGrd

хэндл, через который будет выполнена данная операция

dwAddr

адрес первого считываемого байта в ключе. Вместо значения адреса можно указывать константы, задающие предопределенные адреса стандартных полей. Если dwAddr задать равным GrdSeekCur (0xFFFFFFFF), то в качестве значения адреса памяти в электронном ключе, будет использовано текущее значение этого адреса ассоциированное с данным хэндлом. В случае успешного выполнения операции чтения, текущее значение смещения внутри ключа будет передвинуто за конец считанного блока. Это полезно при организации последовательного потокового чтения данных.

GrdSeekCur

Использовать указатель текущего адреса памяти ключа для выполнения операции

dwLng

количество считываемых байтов

pData

адрес буфера для считанных данных

pReserved

зарезервировано. Значение должно быть равно NULL

Функция GrdRead позволяет считывать данные из областей памяти ключа, на которые не наложен запрет на чтение в том случае, если ключ не был заблокирован на чтение другим потоком. Адрес первого считываемого байта задается параметром dwAddr, количество байт - параметром dwLng. Режим адресации задается при вызове функции GrdSetWorkMode (по умолчанию используется режим адресации UAM). Если функция выполнена успешно, по адресу, заданному параметром pData, будут помещены считанные из ключа данные.

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

Пример для используемого средства разработки см. в директории:

"\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\"
или
"\%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x64\Win64\General Guardant API\"

  • No labels