Создание VxD на Visual C++ без ассемблерных модулей

Client_Reg_Struc - структура пакета регистров клиента


Описывает состояние регистров процессора в вызвавшей виртуальной машине/приложении (клиенте).

ULONG Client_EDI;

ULONG Client_ESI;

ULONG Client_EBP;

ULONG Client_res0;

ULONG Client_EBX;

ULONG Client_EDX;

ULONG Client_ECX;

ULONG Client_EAX;

ULONG Client_Error;

ULONG Client_EIP;

USHORT Client_CS;

USHORT Client_res1;



ULONG Client_EFlags;

ULONG Client_ESP;

USHORT Client_SS;

USHORT Client_res2;

USHORT Client_ES;

USHORT Client_res3;

USHORT Client_DS;

USHORT Client_res4;

USHORT Client_FS;

USHORT Client_res5;

USHORT Client_GS;

USHORT Client_res6;

ULONG Client_Alt_EIP;

USHORT Client_Alt_CS;

USHORT Client_res7;

ULONG Client_Alt_EFlags;

ULONG Client_Alt_ESP;

USHORT Client_Alt_SS;

USHORT Client_res8;

USHORT Client_Alt_ES;

USHORT Client_res9;

USHORT Client_Alt_DS;

USHORT Client_res10;

USHORT Client_Alt_FS;

USHORT Client_res11;

USHORT Client_Alt_GS;

USHORT Client_res12;

Поля с именами Client_xxx

содержат значения соответствующих регистров на момент обращения виртуальной машины или приложения к системной функции. В поле Client_Error может быть занесен код ошибки.

Для структуры введен синоним типа (typedef) с именем CRS. В файле VMM.H

определены также вспомогательные структуры Client_Word_Reg_Struc и Client_Byte_Reg_Struc и объединение всех трех структур CLIENT_STRUCT.



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