Changeset 2708 for trunk/src/lib/nt/ntstat.c
- Timestamp:
- Nov 21, 2013, 11:26:40 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/nt/ntstat.c
r2707 r2708 184 184 185 185 186 /** 187 * Fills in a stat structure from an MY_FILE_ID_FULL_DIR_INFORMATION entry. 188 * 189 * @param pStat The stat structure. 190 * @param pBuf The MY_FILE_ID_FULL_DIR_INFORMATION entry. 191 * @param pszPath Optionally, the path for X bit checks. 192 */ 193 void birdStatFillFromFileIdFullDirInfo(BirdStat_T *pStat, MY_FILE_ID_FULL_DIR_INFORMATION const *pBuf, const char *pszPath) 194 { 195 pStat->st_mode = birdFileInfoToMode(INVALID_HANDLE_VALUE, pBuf->FileAttributes, pszPath, 196 NULL, &pStat->st_dirsymlink); 197 pStat->st_padding0[0] = 0; 198 pStat->st_padding0[1] = 0; 199 pStat->st_size = pBuf->EndOfFile.QuadPart; 200 birdNtTimeToTimeSpec(pBuf->CreationTime.QuadPart, &pStat->st_birthtim); 201 birdNtTimeToTimeSpec(pBuf->ChangeTime.QuadPart, &pStat->st_ctim); 202 birdNtTimeToTimeSpec(pBuf->LastWriteTime.QuadPart, &pStat->st_mtim); 203 birdNtTimeToTimeSpec(pBuf->LastAccessTime.QuadPart, &pStat->st_atim); 204 pStat->st_ino = pBuf->FileId.QuadPart; 205 pStat->st_nlink = 1; 206 pStat->st_rdev = 0; 207 pStat->st_uid = 0; 208 pStat->st_gid = 0; 209 pStat->st_padding1[0] = 0; 210 pStat->st_padding1[1] = 0; 211 pStat->st_padding1[2] = 0; 212 pStat->st_blksize = 65536; 213 pStat->st_blocks = (pBuf->AllocationSize.QuadPart + BIRD_STAT_BLOCK_SIZE - 1) 214 / BIRD_STAT_BLOCK_SIZE; 215 } 216 217 186 218 int birdStatHandle(HANDLE hFile, BirdStat_T *pStat, const char *pszPath) 187 219 { … … 394 426 * Convert the data. 395 427 */ 396 pStat->st_mode = birdFileInfoToMode(INVALID_HANDLE_VALUE, pBuf->FileAttributes, pszPath, 397 NULL, &pStat->st_dirsymlink); 398 pStat->st_padding0[0] = 0; 399 pStat->st_padding0[1] = 0; 400 pStat->st_size = pBuf->EndOfFile.QuadPart; 401 birdNtTimeToTimeSpec(pBuf->CreationTime.QuadPart, &pStat->st_birthtim); 402 birdNtTimeToTimeSpec(pBuf->ChangeTime.QuadPart, &pStat->st_ctim); 403 birdNtTimeToTimeSpec(pBuf->LastWriteTime.QuadPart, &pStat->st_mtim); 404 birdNtTimeToTimeSpec(pBuf->LastAccessTime.QuadPart, &pStat->st_atim); 405 pStat->st_ino = pBuf->FileId.QuadPart; 406 pStat->st_nlink = 1; 407 pStat->st_rdev = 0; 408 pStat->st_uid = 0; 409 pStat->st_gid = 0; 410 pStat->st_padding1[0] = 0; 411 pStat->st_padding1[1] = 0; 412 pStat->st_padding1[2] = 0; 413 pStat->st_blksize = 65536; 414 pStat->st_blocks = (pBuf->AllocationSize.QuadPart + BIRD_STAT_BLOCK_SIZE - 1) 415 / BIRD_STAT_BLOCK_SIZE; 428 birdStatFillFromFileIdFullDirInfo(pStat, pBuf, pszPath); 416 429 417 430 /* Get the serial number, reusing the buffer from above. */
Note:
See TracChangeset
for help on using the changeset viewer.