SaferCreateLevel function

The SaferCreateLevel function opens a SAFER_LEVEL_HANDLE.

Syntax

BOOL SaferCreateLevel(
  DWORD              dwScopeId,
  DWORD              dwLevelId,
  DWORD              OpenFlags,
  SAFER_LEVEL_HANDLE *pLevelHandle,
  LPVOID             lpReserved
);

Parameters

dwScopeId

The scope of the level to be created. The following table shows the possible values.

Value Meaning
SAFER_SCOPEID_MACHINE
1
The scope of the created level is by computer.
SAFER_SCOPEID_USER
2
The scope of the created level is by user.

dwLevelId

The level of the handle to be opened. The following table shows the possible values.

Value Meaning
SAFER_LEVELID_CONSTRAINED
0x10000
Software cannot access certain resources, such as cryptographic keys and credentials, regardless of the user rights of the user.
SAFER_LEVELID_DISALLOWED
0x00000
Software will not run, regardless of the user rights of the user.
SAFER_LEVELID_FULLYTRUSTED
0x40000
Software user rights are determined by the user rights of the user.
SAFER_LEVELID_NORMALUSER
0x20000
Allows programs to execute as a user that does not have Administrator or Power User user rights. Software can access resources accessible by normal users.
SAFER_LEVELID_UNTRUSTED
0x01000
Allows programs to execute with access only to resources granted to open well-known groups, blocking access to Administrator and Power User privileges and personally granted rights.

OpenFlags

This can be the following value.

Value Meaning
SAFER_LEVEL_OPEN
1

pLevelHandle

The returned SAFER_LEVEL_HANDLE. When you have finished using the handle, close it by calling the SaferCloseLevel function.

lpReserved

This parameter is reserved for future use. Set it to NULL.

Return Value

Returns nonzero if successful or zero otherwise.

For extended error information, call GetLastError.

Requirements

   
Windows version Windows XP [desktop apps only] Windows Server 2003 [desktop apps only]
Target Platform Windows
Header winsafer.h
Library Advapi32.lib
DLL Advapi32.dll