Ignore:
Timestamp:
Sep 22, 2000, 11:22:43 AM (25 years ago)
Author:
bird
Message:

Corrected problem with kernel build 14053. (new parameter to ldrOpenPath)
Added symbols for 14053 and 8266.

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 $
    22 *
    33 * myldrOpenPath - ldrOpenPath used to open executables we'll override
     
    4141
    4242/**
     43 * ldrOpenPath.
    4344 * myldrOpenPath - opens file eventually searching loader specific paths
    4445 *
     
    4950 * @param     plv           Loader local variables? (Struct from KERNEL.SDF)
    5051 * @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 *
    5163 * @sketch
    5264 * This is roughly what the original ldrOpenPath does:
     
    5567 *          ldrOpen(pachFilename)
    5668 *      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.
    5773 *          loop until no more libpath elements
    5874 *              get next libpath element and add it to the modname.
     
    6076 *              if successfull then break the loop.
    6177 *          endloop
     78 *          Free buffer.
    6279 *      endif
    6380 *      Restore pTCBCur->TCBFailErr.
     
    6582 *
    6683 */
    67 ULONG LDRCALL myldrOpenPath( /* retd  0x10 */
     84ULONG LDRCALL myldrOpenPath(       /* retd  0x14 */
    6885    PCHAR       pachFilename,       /* ebp + 0x08 */
    6986    USHORT      cchFilename,        /* ebp + 0x0c */
    7087    ldrlv_t *   plv,                /* ebp + 0x10 */
    71     PULONG      pful                /* ebp + 0x14 */
     88    PULONG      pful,               /* ebp + 0x14 */
     89    ULONG       lLibPath            /* ebp + 0x18 */
    7290    )
    7391{
     
    89107                 pachFilename, cchFilename, plv, pful
    90108                 ));
    91         return ldrOpenPath(pachFilename, cchFilename, plv, pful);
     109        return ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath);
    92110    }
    93111    #endif
     
    156174             */
    157175            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);
    159177            tcbSetTCBFailErr(tcbGetCur(), TCBFailErr_save);
    160178        }
    161179        else
    162             rc = ldrOpenPath(pachFilename, cchFilename, plv, pful);
     180            rc = ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath);
    163181    }
    164182    else
    165         rc = ldrOpenPath(pachFilename, cchFilename, plv, pful);
     183        rc = ldrOpenPath(pachFilename, cchFilename, plv, pful, lLibPath);
    166184
    167185
     
    176194
    177195
     196/**
     197 * Wrapper for the old (pre 14053) versions.
     198 * the new parameter is set to 3.
     199 */
     200ULONG 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.