Функция GrdSeek устанавливает текущий указатель памяти ключа на заданную позицию.
{dojo-tabs:theme=tundra|id=1} {dojo-tab:title=C|selected=true} *C* int GRD_API GrdSeek( HANDLE hGrd, DWORD dwAddr ); {dojo-tab} {dojo-tab:title=C#|selected=true} *C#* {dojo-tab} {dojo-tab:title=Visual Basic (Declaration)} *Visual Basic* {dojo-tab} {dojo-tab:title=Visual C++} *Visual C++* {dojo-tab} {dojo-tabs} |
|
Функция GrdSeek устанавливает текущий указатель памяти ключа на заданную позицию. Адрес dwAddr, на который устанавливается указатель должен быть задан в режиме адресации (SAM или UAM) в соответствии с текущим режимом, установленным последним вызовом функции GrdSetWorkMode. При переключении режимов адресации через GrdSetWorkMode значение указателя пересчитывается так, чтобы опять указывать на тот же адрес памяти ключа. Текущий указатель позволяет с большим удобством производить серии последовательных операций чтения/записи, не выполняя каждый раз перерасчет текущего указателя вручную. Если при вызове GrdRead / GrdWrite вместо адреса в ключе указать константу GrdSeekCur ( определена как 0xFFFFFFFF ), то данная операция использует текущее значение указателя, а в случае удачного завершения команды переставит после него текущий указатель на первый байт после последнего записанного или прочитанного. Если с данным хендлом работает не один поток, то между вызовами функций GrdAPI данное значение текущего указателя может быть изменено другим потоком. Поэтому в этом случае предпочтительней указывать в каждом вызове конкретное значение адреса или дополнительно синхронизировать потоки чем-либо типа критических секций. При установке текущего указателя в область памяти, защищенную аппаратными запретами, или за пределы адресуемой памяти ключа, будет возвращено GrdE_OK. |
Пример для используемого средства разработки см. в директории: "\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\" |