The magics of FILE_FLAG_BACKUP_SEMANTICS flag or contradiction in the MSDN library
MSDN: "The FILE_FLAG_BACKUP_SEMANTICS flag specified in the call to
CreateFile gives the backup application process
permission to read the access-control settings of the file or directory. With this permission, the backup
application process can then call
GetKernelObjectSecurity and
SetKernelObjectSecurity to read and
than reset the access-control settings.".
However there is another (undocumented) behavour of
FILE_FLAG_BACKUP_SEMANTICS flag.
It allows non-privileged user to flush buffers on a volume.
The documentation for
FlushFileBuffers function contradicts the found undocumented behavour: "To flush all open files on a volume, call FlushFileBuffers with a handle to the volume. The caller must have administrative privileges."
Read
this discussion on kernel NG.