VirtualBox

Changeset 75652 in vbox for trunk/src/VBox/Runtime/r3/nt


Ignore:
Timestamp:
Nov 21, 2018 9:00:31 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
126831
Message:

IPRT/dir: Adding RTDirRewind for use with shared folders.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/nt/direnum-r3-nt.cpp

    r73097 r75652  
    432432                                                       pThis->cbBufferAlloc,
    433433                                                       RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */,
    434                                                        FALSE /*RestartScan*/,
     434                                                       pThis->fRestartScan,
    435435                                                       &pThis->uObjDirCtx,
    436436                                                       (PULONG)&Ios.Information);
     
    448448                                        RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */,
    449449                                        pThis->pNtFilterStr,
    450                                         FALSE /*RestartScan */);
     450                                        pThis->fRestartScan);
    451451    }
    452452    else
     
    486486                                    RTDIR_NT_SINGLE_RECORD /*ReturnSingleEntry */,
    487487                                    pThis->pNtFilterStr,
    488                                     FALSE /*RestartScan */);
     488                                    pThis->fRestartScan);
    489489        if (NT_SUCCESS(rcNt))
    490490        { /* likely */ }
    491491        else
    492492        {
    493             bool fRestartScan = false;
     493            bool fRestartScan = pThis->fRestartScan;
    494494            for (unsigned iRetry = 0; iRetry < 2; iRetry++)
    495495            {
     
    551551        return RTErrConvertFromNtStatus(rcNt);
    552552    }
     553    pThis->fRestartScan = false;
    553554    AssertMsg(  Ios.Information
    554555              > (pThis->enmInfoClass == FileMaximumInformation ? sizeof(*pThis->uCurData.pObjDir) : sizeof(*pThis->uCurData.pBoth)),
     
    906907}
    907908
     909
     910RTDECL(int) RTDirRewind(RTDIR hDir)
     911{
     912    /*
     913     * Validate and digest input.
     914     */
     915    PRTDIRINTERNAL pThis = hDir;
     916    AssertPtrReturn(pThis, VERR_INVALID_POINTER);
     917    AssertReturn(pThis->u32Magic == RTDIR_MAGIC, VERR_INVALID_HANDLE);
     918
     919    /*
     920     * The work is done on the next call to rtDirNtFetchMore.
     921     */
     922    pThis->fRestartScan = true;
     923    pThis->fDataUnread  = false;
     924
     925    return VINF_SUCCESS;
     926}
    908927
    909928
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette