ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

delayimp.h
Go to the documentation of this file.
00001 #ifndef _delayimp_h
00002 #define _delayimp_h
00003 
00004 #ifdef __GNUC__
00005 /* Hack, for bug in ld.  Will be removed soon.  */
00006 #define __ImageBase _image_base__
00007 #endif
00008 
00009 #define DELAYLOAD_VERSION 0x200
00010 
00011 typedef DWORD RVA;
00012 typedef IMAGE_THUNK_DATA *PImgThunkData;
00013 typedef const IMAGE_THUNK_DATA *PCImgThunkData;
00014 
00015 enum DLAttr
00016 {
00017     dlattrRva = 0x1,
00018 };
00019 
00020 /* Notification codes */
00021 enum
00022 {
00023     dliStartProcessing,
00024     dliNotePreLoadLibrary,
00025     dliNotePreGetProcAddress,
00026     dliFailLoadLib,
00027     dliFailGetProc,
00028     dliNoteEndProcessing,
00029 };
00030 
00031 typedef struct ImgDelayDescr
00032 {
00033     DWORD grAttrs;
00034     RVA rvaDLLName;
00035     RVA rvaHmod;
00036     RVA rvaIAT;
00037     RVA rvaINT;
00038     RVA rvaBoundIAT;
00039     RVA rvaUnloadIAT;
00040     DWORD dwTimeStamp; 
00041 } ImgDelayDescr, *PImgDelayDescr;
00042 typedef const ImgDelayDescr *PCImgDelayDescr;
00043 
00044 typedef struct DelayLoadProc
00045 {
00046     BOOL fImportByName;
00047     union
00048     {
00049         LPCSTR szProcName;
00050         DWORD dwOrdinal;
00051     };
00052 } DelayLoadProc;
00053 
00054 typedef struct DelayLoadInfo
00055 {
00056     DWORD cb;
00057     PCImgDelayDescr pidd;
00058     FARPROC *ppfn;
00059     LPCSTR szDll;
00060     DelayLoadProc dlp;
00061     HMODULE hmodCur;
00062     FARPROC pfnCur;
00063     DWORD dwLastError;
00064 } DelayLoadInfo, *PDelayLoadInfo;
00065 
00066 typedef FARPROC (WINAPI *PfnDliHook)(unsigned, PDelayLoadInfo);
00067 
00068 FORCEINLINE
00069 unsigned
00070 IndexFromPImgThunkData(PCImgThunkData pData, PCImgThunkData pBase)
00071 {
00072     return pData - pBase;
00073 }
00074 
00075 extern const IMAGE_DOS_HEADER __ImageBase;
00076 
00077 FORCEINLINE
00078 PVOID
00079 PFromRva(RVA rva)
00080 {
00081     return (PVOID)(((ULONG_PTR)(rva)) + ((ULONG_PTR)&__ImageBase));
00082 }
00083 
00084 
00085 extern PfnDliHook __pfnDliNotifyHook2;
00086 extern PfnDliHook __pfnDliFailureHook2;
00087 
00088 #endif /* not _delayimp_h */

Generated on Sat May 26 2012 04:30:03 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.