Lines Matching refs:pDirEntry

138 RTDECL(int) RTDirRead(PRTDIR pDir, PRTDIRENTRY pDirEntry, size_t *pcbDirEntry)
148 if (!pDirEntry)
150 AssertMsgFailed(("Invalid pDirEntry=%p\n", pDirEntry));
153 size_t cbDirEntry = sizeof(*pDirEntry);
211 pDirEntry->INodeId = 0; /** @todo we can use the fileid here if we must (see GetFileInformationByHandle). */
212 pDirEntry->enmType = pDir->Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
214 pDirEntry->cbName = (uint16_t)cchName;
215 Assert(pDirEntry->cbName == cchName);
216 memcpy(pDirEntry->szName, pszName, cchName + 1);
222 RTDECL(int) RTDirReadEx(PRTDIR pDir, PRTDIRENTRYEX pDirEntry, size_t *pcbDirEntry, RTFSOBJATTRADD enmAdditionalAttribs, uint32_t fFlags)
234 if (!pDirEntry)
236 AssertMsgFailed(("Invalid pDirEntry=%p\n", pDirEntry));
246 size_t cbDirEntry = sizeof(*pDirEntry);
304 pDirEntry->cbName = (uint16_t)cchName;
305 Assert(pDirEntry->cbName == cchName);
306 memcpy(pDirEntry->szName, pszName, cchName + 1);
311 PRTUTF16 pwszDst = pDirEntry->wszShortName;
313 while (pwszSrc[off] && off < RT_ELEMENTS(pDirEntry->wszShortName) - 1U)
318 pDirEntry->cwcShortName = (uint16_t)off;
323 while (off < RT_ELEMENTS(pDirEntry->wszShortName));
327 memset(pDirEntry->wszShortName, 0, sizeof(pDirEntry->wszShortName));
328 pDirEntry->cwcShortName = 0;
331 pDirEntry->Info.cbObject = ((uint64_t)pDir->Data.nFileSizeHigh << 32)
333 pDirEntry->Info.cbAllocated = pDirEntry->Info.cbObject;
336 RTTimeSpecSetNtTime(&pDirEntry->Info.BirthTime, *(uint64_t *)&pDir->Data.ftCreationTime);
337 RTTimeSpecSetNtTime(&pDirEntry->Info.AccessTime, *(uint64_t *)&pDir->Data.ftLastAccessTime);
338 RTTimeSpecSetNtTime(&pDirEntry->Info.ModificationTime, *(uint64_t *)&pDir->Data.ftLastWriteTime);
339 pDirEntry->Info.ChangeTime = pDirEntry->Info.ModificationTime;
341 pDirEntry->Info.Attr.fMode = rtFsModeFromDos((pDir->Data.dwFileAttributes << RTFS_DOS_SHIFT) & RTFS_DOS_MASK_NT,
350 pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_EASIZE;
351 pDirEntry->Info.Attr.u.EASize.cb = 0;
355 pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX;
356 pDirEntry->Info.Attr.u.Unix.uid = ~0U;
357 pDirEntry->Info.Attr.u.Unix.gid = ~0U;
358 pDirEntry->Info.Attr.u.Unix.cHardlinks = 1;
359 pDirEntry->Info.Attr.u.Unix.INodeIdDevice = 0; /** @todo Use the volume serial number (see GetFileInformationByHandle). */
360 pDirEntry->Info.Attr.u.Unix.INodeId = 0; /** @todo Use the fileid (see GetFileInformationByHandle). */
361 pDirEntry->Info.Attr.u.Unix.fFlags = 0;
362 pDirEntry->Info.Attr.u.Unix.GenerationId = 0;
363 pDirEntry->Info.Attr.u.Unix.Device = 0;
367 pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_NOTHING;
371 pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX_OWNER;
372 pDirEntry->Info.Attr.u.UnixOwner.uid = ~0U;
373 pDirEntry->Info.Attr.u.UnixOwner.szName[0] = '\0'; /** @todo return something sensible here. */
377 pDirEntry->Info.Attr.enmAdditional = RTFSOBJATTRADD_UNIX_GROUP;
378 pDirEntry->Info.Attr.u.UnixGroup.gid = ~0U;
379 pDirEntry->Info.Attr.u.UnixGroup.szName[0] = '\0';