Changeset 4307 for trunk/src/win32k/ldr/myldrOpenPath.cpp
- Timestamp:
- Sep 22, 2000, 11:22:43 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/ldr/myldrOpenPath.cpp
r4164 r4307 1 /* $Id: myldrOpenPath.cpp,v 1. 2 2000-09-02 21:08:10 bird Exp $1 /* $Id: myldrOpenPath.cpp,v 1.3 2000-09-22 09:22:40 bird Exp $ 2 2 * 3 3 * myldrOpenPath - ldrOpenPath used to open executables we'll override … … 41 41 42 42 /** 43 * ldrOpenPath. 43 44 * myldrOpenPath - opens file eventually searching loader specific paths 44 45 * … … 49 50 * @param plv Loader local variables? (Struct from KERNEL.SDF) 50 51 * @param pful Pointer to flags which are passed on to ldrOpen. 52 * @param lLibPath New parameter in build 14053() 53 * ldrGetMte calls with 1 54 * ldrOpenNewExe calls with 3 55 * This is compared to the initial libpath index. 56 * The libpath index is: 57 * BEGINLIBPATH 1 58 * LIBPATH 2 59 * ENDLIBPATH 3 60 * The initial libpath index is either 1 or 2. 61 * Currently we'll ignore it. (I don't know why ldrGetMte calls ldrOpenPath...) 62 * 51 63 * @sketch 52 64 * This is roughly what the original ldrOpenPath does: … … 55 67 * ldrOpen(pachFilename) 56 68 * else 69 * if beglibpath != NULL then path = 1 else path = 2 70 * if (lLibPath < path) 71 * return ERROR_FILE_NOT_FOUND; (2) 72 * Allocate buffer. 57 73 * loop until no more libpath elements 58 74 * get next libpath element and add it to the modname. … … 60 76 * if successfull then break the loop. 61 77 * endloop 78 * Free buffer. 62 79 * endif 63 80 * Restore pTCBCur->TCBFailErr. … … 65 82 * 66 83 */ 67 ULONG LDRCALL myldrOpenPath( /* retd 0x10*/84 ULONG LDRCALL myldrOpenPath( /* retd 0x14 */ 68 85 PCHAR pachFilename, /* ebp + 0x08 */ 69 86 USHORT cchFilename, /* ebp + 0x0c */ 70 87 ldrlv_t * plv, /* ebp + 0x10 */ 71 PULONG pful /* ebp + 0x14 */ 88 PULONG pful, /* ebp + 0x14 */ 89 ULONG lLibPath /* ebp + 0x18 */ 72 90 ) 73 91 { … … 89 107 pachFilename, cchFilename, plv, pful 90 108 )); 91 return ldrOpenPath(pachFilename, cchFilename, plv, pful );109 return ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath); 92 110 } 93 111 #endif … … 156 174 */ 157 175 USHORT TCBFailErr_save = tcbGetTCBFailErr(tcbGetCur()); 158 rc = pExe->Data.pModule->openPath(pachFilename, cchFilename, plv, pful );176 rc = pExe->Data.pModule->openPath(pachFilename, cchFilename, plv, pful, lLibPath); 159 177 tcbSetTCBFailErr(tcbGetCur(), TCBFailErr_save); 160 178 } 161 179 else 162 rc = ldrOpenPath(pachFilename, cchFilename, plv, pful );180 rc = ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath); 163 181 } 164 182 else 165 rc = ldrOpenPath(pachFilename, cchFilename, plv, pful );183 rc = ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath); 166 184 167 185 … … 176 194 177 195 196 /** 197 * Wrapper for the old (pre 14053) versions. 198 * the new parameter is set to 3. 199 */ 200 ULONG LDRCALL myldrOpenPath_old( /* retd 0x10 */ 201 PCHAR pachFilename, /* ebp + 0x08 */ 202 USHORT cchFilename, /* ebp + 0x0c */ 203 ldrlv_t * plv, /* ebp + 0x10 */ 204 PULONG pful /* ebp + 0x14 */ 205 ) 206 { 207 return myldrOpenPath(pachFilename, cchFilename, plv, pful, 3); 208 } 209 210
Note:
See TracChangeset
for help on using the changeset viewer.