ReactOS 0.4.16-dev-1946-g52006dd
dlihook.c File Reference
#include <windows.h>
#include <delayimp.h>
#include <stdio.h>
#include <versionhelpers.h>
Include dependency graph for dlihook.c:

Go to the source code of this file.

Functions

static FARPROC WINAPI DliNotifyHook (unsigned code, PDelayLoadInfo pdli)
 
static FARPROC WINAPI DliFailureHook (unsigned code, PDelayLoadInfo pdli)
 

Variables

PfnDliHook __pfnDliNotifyHook2 = DliNotifyHook
 Custom delay-loading hooks for loading the Setup DLLs from a suitable path.
 
PfnDliHook __pfnDliFailureHook2 = DliFailureHook
 

Function Documentation

◆ DliFailureHook()

static FARPROC WINAPI DliFailureHook ( unsigned  code,
PDelayLoadInfo  pdli 
)
static

Definition at line 63 of file dlihook.c.

66{
67 if (code == dliFailLoadLib)
68 {
69 fprintf(stderr, "Delayimport: Failed to load %s\n", pdli->szDll);
70 }
71 else if (code == dliFailGetProc)
72 {
74 "Delayimport: Failed to import %s from %s\n",
75 pdli->dlp.szProcName,
76 pdli->szDll);
77 }
78 else
79 {
80 fprintf(stderr, "Delayimport: Unknown error code %d (%s, 0x%lx)\n", code, pdli->szDll, pdli->dwLastError);
81 }
82
83 return NULL;
84}
@ dliFailLoadLib
Definition: delayimp.h:37
@ dliFailGetProc
Definition: delayimp.h:38
#define NULL
Definition: types.h:112
#define stderr
Definition: stdio.h:100
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
LPCSTR szDll
Definition: delayimp.h:70
DelayLoadProc dlp
Definition: delayimp.h:71
DWORD dwLastError
Definition: delayimp.h:74
LPCSTR szProcName
Definition: delayimp.h:60
Definition: inflate.c:139

◆ DliNotifyHook()

static FARPROC WINAPI DliNotifyHook ( unsigned  code,
PDelayLoadInfo  pdli 
)
static

Definition at line 16 of file dlihook.c.

19{
21 {
22 return NULL;
23 }
24
25 if (strcmp(pdli->szDll, "win32u.dll") != 0)
26 {
27 return NULL;
28 }
29
30 if (IsReactOS())
31 {
32 return NULL;
33 }
34
35 switch (_winver)
36 {
38 pdli->szDll = "win32u_xpsp2.dll";
39 break;
40
42 pdli->szDll = "win32u_2k3sp2.dll";
43 break;
44
46 pdli->szDll = "win32u_vista.dll";
47 break;
48
49 default:
50 break;
51 }
52
53 printf("_winver = 0x%x, _osver = 0x%x, loading %s\n", _winver, _osver, pdli->szDll);
54
55 return NULL;
56}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
@ dliNotePreLoadLibrary
Definition: delayimp.h:35
#define printf
Definition: freeldr.h:97
unsigned int _osver
Definition: environ.c:11
unsigned int _winver
Definition: environ.c:14
#define _WIN32_WINNT_WS03
Definition: sdkddkver.h:23
#define _WIN32_WINNT_WINXP
Definition: sdkddkver.h:22
#define _WIN32_WINNT_VISTA
Definition: sdkddkver.h:25

Variable Documentation

◆ __pfnDliFailureHook2

PfnDliHook __pfnDliFailureHook2 = DliFailureHook

Definition at line 86 of file dlihook.c.

◆ __pfnDliNotifyHook2

PfnDliHook __pfnDliNotifyHook2 = DliNotifyHook

Custom delay-loading hooks for loading the Setup DLLs from a suitable path.

Definition at line 58 of file dlihook.c.