@@ -5570,8 +5570,8 @@ namespace Detours {
55705570
55715571 typedef enum _HARDWARE_HOOK_TYPE : unsigned char {
55725572 TYPE_EXECUTE = 0 ,
5573- TYPE_WRITE = 1 ,
5574- TYPE_ACCESS = 3
5573+ TYPE_WRITE = 1 ,
5574+ TYPE_ACCESS = 3
55755575 } HARDWARE_HOOK_TYPE, *PHARDWARE_HOOK_TYPE;
55765576
55775577 // ----------------------------------------------------------------
@@ -5592,8 +5592,8 @@ namespace Detours {
55925592 // ----------------------------------------------------------------
55935593
55945594 typedef enum _MEMORY_HOOK_OPERATION : unsigned char {
5595- MEMORY_READ = 0 ,
5596- MEMORY_WRITE = 1 ,
5595+ MEMORY_READ = 0 ,
5596+ MEMORY_WRITE = 1 ,
55975597 MEMORY_EXECUTE = 2
55985598 } MEMORY_HOOK_OPERATION, *PMEMORY_HOOK_OPERATION;
55995599
@@ -5607,7 +5607,7 @@ namespace Detours {
56075607 // Memory Hook
56085608 // ----------------------------------------------------------------
56095609
5610- bool HookMemory (const fnMemoryHookCallBack pCallBack, void * pAddress, size_t unSize);
5610+ bool HookMemory (const fnMemoryHookCallBack pCallBack, void * pAddress, size_t unSize, const fnMemoryHookCallBack pPostCallBack = nullptr );
56115611 bool UnHookMemory (const fnMemoryHookCallBack pCallBack);
56125612
56135613 // ----------------------------------------------------------------
@@ -5873,30 +5873,30 @@ namespace Detours {
58735873 unsigned int m_unEFLAGS;
58745874 unsigned short m_unFLAGS;
58755875 struct {
5876- unsigned int m_unCF : 1 ; // Bit 0: Carry Flag
5877- unsigned int : 1 ; // Bit 1: Reserved
5878- unsigned int m_unPF : 1 ; // Bit 2: Parity Flag
5879- unsigned int : 1 ; // Bit 3: Reserved
5880- unsigned int m_unAF : 1 ; // Bit 4: Auxiliary Carry Flag
5881- unsigned int : 1 ; // Bit 5: Reserved
5882- unsigned int m_unZF : 1 ; // Bit 6: Zero Flag
5883- unsigned int m_unSF : 1 ; // Bit 7: Sign Flag
5884- unsigned int m_unTF : 1 ; // Bit 8: Trap Flag
5885- unsigned int m_unIF : 1 ; // Bit 9: Interrupt Enable Flag
5886- unsigned int m_unDF : 1 ; // Bit 10: Direction Flag
5887- unsigned int m_unOF : 1 ; // Bit 11: Overflow Flag
5888- unsigned int m_unIOPL : 2 ; // Bit 12-13: I/O Privilege Level
5889- unsigned int m_unNT : 1 ; // Bit 14: Nested Task
5890- unsigned int m_unMD : 1 ; // Bit 15: Mode Flag
5891- unsigned int m_unRF : 1 ; // Bit 16: Resume Flag
5892- unsigned int m_unVM : 1 ; // Bit 17: Virtual 8086 Mode Flag
5893- unsigned int m_unAC : 1 ; // Bit 18: Alignment Check
5894- unsigned int m_unVIF : 1 ; // Bit 19: Virtual Interrupt Flag
5895- unsigned int m_unVIP : 1 ; // Bit 20: Virtual Interrupt Pending
5896- unsigned int m_unID : 1 ; // Bit 21: ID Flag
5897- unsigned int : 8 ; // Bit 22-29: Reserved
5898- unsigned int : 1 ; // Bit 30: Reserved
5899- unsigned int m_unAI : 1 ; // Bit 31: Alignment Indicator
5876+ unsigned int m_unCF : 1 ; // Bit 0: Carry Flag
5877+ unsigned int : 1 ; // Bit 1: Reserved
5878+ unsigned int m_unPF : 1 ; // Bit 2: Parity Flag
5879+ unsigned int : 1 ; // Bit 3: Reserved
5880+ unsigned int m_unAF : 1 ; // Bit 4: Auxiliary Carry Flag
5881+ unsigned int : 1 ; // Bit 5: Reserved
5882+ unsigned int m_unZF : 1 ; // Bit 6: Zero Flag
5883+ unsigned int m_unSF : 1 ; // Bit 7: Sign Flag
5884+ unsigned int m_unTF : 1 ; // Bit 8: Trap Flag
5885+ unsigned int m_unIF : 1 ; // Bit 9: Interrupt Enable Flag
5886+ unsigned int m_unDF : 1 ; // Bit 10: Direction Flag
5887+ unsigned int m_unOF : 1 ; // Bit 11: Overflow Flag
5888+ unsigned int m_unIOPL : 2 ; // Bit 12-13: I/O Privilege Level
5889+ unsigned int m_unNT : 1 ; // Bit 14: Nested Task
5890+ unsigned int m_unMD : 1 ; // Bit 15: Mode Flag
5891+ unsigned int m_unRF : 1 ; // Bit 16: Resume Flag
5892+ unsigned int m_unVM : 1 ; // Bit 17: Virtual 8086 Mode Flag
5893+ unsigned int m_unAC : 1 ; // Bit 18: Alignment Check
5894+ unsigned int m_unVIF : 1 ; // Bit 19: Virtual Interrupt Flag
5895+ unsigned int m_unVIP : 1 ; // Bit 20: Virtual Interrupt Pending
5896+ unsigned int m_unID : 1 ; // Bit 21: ID Flag
5897+ unsigned int : 8 ; // Bit 22-29: Reserved
5898+ unsigned int : 1 ; // Bit 30: Reserved
5899+ unsigned int m_unAI : 1 ; // Bit 31: Alignment Indicator
59005900 };
59015901 };
59025902
@@ -6068,31 +6068,31 @@ namespace Detours {
60686068 unsigned int m_unEFLAGS;
60696069 unsigned short m_unFLAGS;
60706070 struct {
6071- unsigned int m_unCF : 1 ; // Bit 0: Carry Flag
6072- unsigned int : 1 ; // Bit 1: Reserved
6073- unsigned int m_unPF : 1 ; // Bit 2: Parity Flag
6074- unsigned int : 1 ; // Bit 3: Reserved
6075- unsigned int m_unAF : 1 ; // Bit 4: Auxiliary Carry Flag
6076- unsigned int : 1 ; // Bit 5: Reserved
6077- unsigned int m_unZF : 1 ; // Bit 6: Zero Flag
6078- unsigned int m_unSF : 1 ; // Bit 7: Sign Flag
6079- unsigned int m_unTF : 1 ; // Bit 8: Trap Flag
6080- unsigned int m_unIF : 1 ; // Bit 9: Interrupt Enable Flag
6081- unsigned int m_unDF : 1 ; // Bit 10: Direction Flag
6082- unsigned int m_unOF : 1 ; // Bit 11: Overflow Flag
6083- unsigned int m_unIOPL : 2 ; // Bit 12-13: I/O Privilege Level
6084- unsigned int m_unNT : 1 ; // Bit 14: Nested Task
6085- unsigned int m_unMD : 1 ; // Bit 15: Mode Flag
6086- unsigned int m_unRF : 1 ; // Bit 16: Resume Flag
6087- unsigned int m_unVM : 1 ; // Bit 17: Virtual 8086 Mode Flag
6088- unsigned int m_unAC : 1 ; // Bit 18: Alignment Check
6089- unsigned int m_unVIF : 1 ; // Bit 19: Virtual Interrupt Flag
6090- unsigned int m_unVIP : 1 ; // Bit 20: Virtual Interrupt Pending
6091- unsigned int m_unID : 1 ; // Bit 21: ID Flag
6092- unsigned int : 8 ; // Bit 22-29: Reserved
6093- unsigned int : 1 ; // Bit 30: Reserved
6094- unsigned int m_unAI : 1 ; // Bit 31: Alignment Indicator
6095- unsigned int : 32 ; // Bit 32-63: Reserved
6071+ unsigned int m_unCF : 1 ; // Bit 0: Carry Flag
6072+ unsigned int : 1 ; // Bit 1: Reserved
6073+ unsigned int m_unPF : 1 ; // Bit 2: Parity Flag
6074+ unsigned int : 1 ; // Bit 3: Reserved
6075+ unsigned int m_unAF : 1 ; // Bit 4: Auxiliary Carry Flag
6076+ unsigned int : 1 ; // Bit 5: Reserved
6077+ unsigned int m_unZF : 1 ; // Bit 6: Zero Flag
6078+ unsigned int m_unSF : 1 ; // Bit 7: Sign Flag
6079+ unsigned int m_unTF : 1 ; // Bit 8: Trap Flag
6080+ unsigned int m_unIF : 1 ; // Bit 9: Interrupt Enable Flag
6081+ unsigned int m_unDF : 1 ; // Bit 10: Direction Flag
6082+ unsigned int m_unOF : 1 ; // Bit 11: Overflow Flag
6083+ unsigned int m_unIOPL : 2 ; // Bit 12-13: I/O Privilege Level
6084+ unsigned int m_unNT : 1 ; // Bit 14: Nested Task
6085+ unsigned int m_unMD : 1 ; // Bit 15: Mode Flag
6086+ unsigned int m_unRF : 1 ; // Bit 16: Resume Flag
6087+ unsigned int m_unVM : 1 ; // Bit 17: Virtual 8086 Mode Flag
6088+ unsigned int m_unAC : 1 ; // Bit 18: Alignment Check
6089+ unsigned int m_unVIF : 1 ; // Bit 19: Virtual Interrupt Flag
6090+ unsigned int m_unVIP : 1 ; // Bit 20: Virtual Interrupt Pending
6091+ unsigned int m_unID : 1 ; // Bit 21: ID Flag
6092+ unsigned int : 8 ; // Bit 22-29: Reserved
6093+ unsigned int : 1 ; // Bit 30: Reserved
6094+ unsigned int m_unAI : 1 ; // Bit 31: Alignment Indicator
6095+ unsigned int : 32 ; // Bit 32-63: Reserved
60966096 };
60976097 };
60986098
0 commit comments