Changeset 2940 for trunk/src/lib


Ignore:
Timestamp:
Sep 19, 2016, 8:34:43 PM (9 years ago)
Author:
bird
Message:

kWorker: Fixed busted read-only caching, checking out using memory mapped files for it. Made the CreateFileW interceptor not callCreateFileA for read-only cached files. Deal with
?\ prefixed paths (long paths) and other moc.exe related fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/nt/kFsCache.c

    r2930 r2940  
    24572457                                       KU32 *poff, KFSLOOKUPERROR *penmError)
    24582458{
     2459    /*
     2460     * Special case: Long path prefix w/ drive letter following it.
     2461     * Note! Must've been converted from wide char to ANSI.
     2462     */
     2463    if (   IS_SLASH(pszPath[0])
     2464        && IS_SLASH(pszPath[1])
     2465        && pszPath[2] == '?'
     2466        && IS_SLASH(pszPath[3])
     2467        && IS_ALPHA(pszPath[4])
     2468        && pszPath[5] == ':'
     2469        && IS_SLASH(pszPath[6]) )
     2470    {
     2471        *poff = 4 + 2;
     2472        return kFsCacheLookupDrive(pCache, pszPath[4], fFlags, penmError);
     2473    }
     2474
    24592475#if 0 /* later */
    24602476    KU32 offStartServer;
     
    25032519 * @param   pwszPath            The path.
    25042520 * @param   fFlags              Lookup flags, KFSCACHE_LOOKUP_F_XXX.
    2505  * @param   poff                Where to return the root dire.
     2521 * @param   poff                Where to return the root dir.
    25062522 * @param   penmError           Where to return details as to why the lookup
    25072523 *                              failed.
     
    25102526                                       KU32 *poff, KFSLOOKUPERROR *penmError)
    25112527{
     2528    /*
     2529     * Special case: Long path prefix w/ drive letter following it.
     2530     */
     2531    if (   IS_SLASH(pwszPath[0])
     2532        && IS_SLASH(pwszPath[1])
     2533        && pwszPath[2] == '?'
     2534        && IS_SLASH(pwszPath[3])
     2535        && IS_ALPHA(pwszPath[4])
     2536        && pwszPath[5] == ':'
     2537        && IS_SLASH(pwszPath[6]) )
     2538    {
     2539        *poff = 4 + 2;
     2540        return kFsCacheLookupDrive(pCache, (char)pwszPath[4], fFlags, penmError);
     2541    }
     2542
     2543
    25122544#if 0 /* later */
    25132545    KU32 offStartServer;
Note: See TracChangeset for help on using the changeset viewer.