Ignore:
Timestamp:
Dec 14, 2010, 6:56:52 PM (15 years ago)
Author:
dmik
Message:

kernel32: Fixed: GetFileInformation() would fail with ERROR_ACCESS_DEINIED on a file opened in write-only mode if it is located on an HPFS386 volume (HPFS386 treats EAs as part of file data, not part of file attributes).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/oslibdos.cpp

    r21437 r21525  
    3434#include <win32api.h>
    3535#include <winconst.h>
    36 #include <win\winioctl.h>
     36#include <win/winioctl.h>
    3737#include <misc.h>
    3838#include <odincrt.h>
     
    13971397 APIRET       rc;
    13981398
     1399   // NOTE: On HPFS386, doing FIL_QUERYEASIZE on a write-only file will
     1400   // fail with ERROR_ACCESS_DENIED. Since we don't actually care about EAs
     1401   // here, we will simply use FIL_STANDARD instead.
     1402
    13991403   if(f64BitIO)
    14001404   {
    1401         FILESTATUS4L statusL = { 0 };
    1402 
    1403         rc = DosQueryFileInfo(hFile, FIL_QUERYEASIZEL,
     1405        FILESTATUS3L statusL = { 0 };
     1406
     1407        rc = DosQueryFileInfo(hFile, FIL_STANDARDL,
    14041408                              &statusL, sizeof(statusL));
    14051409        if(rc == NO_ERROR)
     
    14391443   else
    14401444   {
    1441         FILESTATUS4  status  = { 0 };
    1442 
    1443         rc = DosQueryFileInfo(hFile, FIL_QUERYEASIZE, &status,
     1445        FILESTATUS3  status  = { 0 };
     1446
     1447        rc = DosQueryFileInfo(hFile, FIL_STANDARD, &status,
    14441448                              sizeof(status));
    14451449        if(rc == NO_ERROR)
Note: See TracChangeset for help on using the changeset viewer.