Уроки Iczelion'а

       

Вызов VxD-сервисов


Вызов VMM- и VxD-сервисов осуществляется через макросы VMMCall и VxDCall. Оба макроса имеют одинаковый синтаксис. VMMCall используется, когда вам нужно вызвать VxD-сервисы, экспортированные VMM, а VxDCall используется, когда вы вызываете сервисы, экспортированные чем-то другим.

VMMCall service ; для вызова регистровых сервисов VMMCall _service, ; для вызова стековых сервисов

VMMCall и VxDCall фактически являются int 20h, за которым следует dword, что я уже объяснял в предыдущих туториалах, но макросы более удобны. В случае со стековыми сервисами, вы должны заключать список аргументов в угловые скобки.

VMMCall _HeapAllocate, <, HeapLockedIfDP>

_HeaрAllocate - это стековый сервис. Он принимает два параметра. Мы дожны заключить их в угловые скобки. Тем не менее, первый параметр - это выражение, которое макрос может интерпретировать неправильно, поэтому мы помещаем их внутри других угловых скобок.



Содержание раздела