Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993-1998
//
// File: ldrpatch.h
//
// Contents: Patch data structures
//
// History: 13-Oct-99 v-johnwh created
// 15-Feb-00 markder Changed CHARs to WCHARs
//
//---------------------------------------------------------------------------
#ifndef _LDRPATCH_H_
#define _LDRPATCH_H_
typedef struct _PATCHOP { DWORD dwOpcode; // opcode to be performed
DWORD dwNextOpcode; // relative offset to next opcode
#pragma warning( disable : 4200 )
BYTE data[]; //data for this operation type is dependent on the operation code
#pragma warning( default : 4200 )
} PATCHOP, *PPATCHOP;
typedef struct _RELATIVE_MODULE_ADDRESS { DWORD address; //relative address from beginning of loaded module
BYTE reserved[3]; //reserved for system use
WCHAR moduleName[32]; //module name for this address.
} RELATIVE_MODULE_ADDRESS, *PRELATIVE_MODULE_ADDRESS;
typedef struct _PATCHWRITEDATA { DWORD dwSizeData; //size of patch data in bytes
RELATIVE_MODULE_ADDRESS rva; //relative address where this patch data is to be applied.
#pragma warning( disable : 4200 )
BYTE data[]; //patch data bytes.
#pragma warning( default : 4200 )
} PATCHWRITEDATA, *PPATCHWRITEDATA;
typedef struct _PATCHMATCHDATA { DWORD dwSizeData; //size of matching data data in bytes
RELATIVE_MODULE_ADDRESS rva; //relative address where this patch data is to be verified.
#pragma warning( disable : 4200 )
BYTE data[]; //Matching data bytes.
#pragma warning( default : 4200 )
} PATCHMATCHDATA, *PPATCHMATCHDATA;
typedef struct _SETACTIVATEADDRESS { RELATIVE_MODULE_ADDRESS rva; //relative address where this patch data is to be applied.
} SETACTIVATEADDRESS, *PSETACTIVATEADDRESS;
typedef struct _HOOKPATCHINFO { DWORD dwHookAddress; // Address of a hooked function
PSETACTIVATEADDRESS pData; // Pointer to the real patch data
PVOID pThunkAddress; // Pointer to the call thunk
struct _HOOKPATCHINFO *pNextHook; } HOOKPATCHINFO, *PHOOKPATCHINFO;
typedef enum _PATCHOPCODES { PEND = 0, //no more opcodes
PSAA, //Set Activate Address, SETACTIVATEADDRESS
PWD, //Patch Write Data, PATCHWRITEDATA
PNOP, //No Operation
PMAT, //Patch match the matching bytes but do not replace the bytes.
} PATCHOPCODES;
#endif //_LDRPATCH_H_
|