Home | History | Annotate | Download | only in Windows
      1 // Windows/MemoryLock.h
      2 
      3 #ifndef __WINDOWS_MEMORY_LOCK_H
      4 #define __WINDOWS_MEMORY_LOCK_H
      5 
      6 #include "../Common/MyWindows.h"
      7 
      8 namespace NWindows {
      9 namespace NSecurity {
     10 
     11 #ifndef UNDER_CE
     12 
     13 bool EnablePrivilege(LPCTSTR privilegeName, bool enable = true);
     14 
     15 inline bool EnablePrivilege_LockMemory(bool enable = true)
     16 {
     17   return EnablePrivilege(SE_LOCK_MEMORY_NAME, enable);
     18 }
     19 
     20 inline void EnablePrivilege_SymLink()
     21 {
     22   /* Probably we do not to set any Privilege for junction points.
     23      But we need them for Symbolic links */
     24   NSecurity::EnablePrivilege(SE_RESTORE_NAME);
     25 
     26   /* Probably we need only SE_RESTORE_NAME, but there is also
     27      SE_CREATE_SYMBOLIC_LINK_NAME. So we set it also. Do we need it? */
     28 
     29   NSecurity::EnablePrivilege(TEXT("SeCreateSymbolicLinkPrivilege")); // SE_CREATE_SYMBOLIC_LINK_NAME
     30 
     31   // Do we need to set SE_BACKUP_NAME ?
     32 }
     33 
     34 #endif
     35 
     36 }}
     37 
     38 #endif
     39