|  userenv.h (5.2.3790.3959-Windows 5.0)  |   |  userenv.h (6.0.6002.18005-Windows 6.0)  | 
 
       |   |  | 
      | skipping to change at line 221 |   | skipping to change at line 221 | 
      | #ifdef UNICODE |   | #ifdef UNICODE | 
      | #define DeleteProfile  DeleteProfileW |   | #define DeleteProfile  DeleteProfileW | 
      | #else |   | #else | 
      | #define DeleteProfile  DeleteProfileA |   | #define DeleteProfile  DeleteProfileA | 
      | #endif // !UNICODE |   | #endif // !UNICODE | 
       |   |  | 
      | #endif /* WINVER >= 0x0500 */ |   | #endif /* WINVER >= 0x0500 */ | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
      | // |   | // | 
       | 
       |   | //  CreateProfile() | 
       |   | // | 
       |   | //  Creating a user profile without loading it. | 
       |   | // | 
       |   | //  pszUserSid     - String form of the user sid. | 
       |   | //  pszUserName    - Name of the user, used as the base name to create the | 
       |   | //                   profile directory | 
       |   | //  pszProfilePath - Returned full profile path | 
       |   | //  cchProfilePath - Size of pszProfilePath buffer | 
       |   | // | 
       |   | //  Return:     S_OK : Successfully created the profile | 
       |   | //              E_ACCESSDENIED : The caller does not have enough permission to | 
       |   | //                     create the profile. The caller has to be administrators | 
       |   | //                     in order for this API to succeed. | 
       |   | //              HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) : a profile is | 
       |   | //                     already exists for the given user. | 
       |   | //              Others : Standard HRESULT error codes. | 
       |   | // | 
       |   | //  Comments: | 
       |   | //============================================================================= | 
       |   |  | 
       |   | #if(WINVER >= 0x0600) | 
       |   |  | 
       |   | USERENVAPI | 
       |   | HRESULT | 
       |   | WINAPI | 
       |   | CreateProfile(LPCWSTR pszUserSid, | 
       |   |               LPCWSTR pszUserName, | 
       |   |               __out_ecount(cchProfilePath) LPWSTR pszProfilePath, | 
       |   |               DWORD cchProfilePath); | 
       |   |  | 
       |   | #endif /* WINVER >= 0x0600 */ | 
       |   |  | 
       |   | //============================================================================= | 
       |   | // | 
      | // GetDefaultUserProfilesDirectory |   | // GetDefaultUserProfilesDirectory | 
      | // |   | // | 
      | // Returns the path to the root of the default user profile |   | // Returns the path to the root of the default user profile | 
      | // |   | // | 
      | // lpProfileDir   -  Receives the path |   | // lpProfileDir   -  Receives the path | 
      | // lpcchSize      -  Size of lpProfileDir |   | // lpcchSize      -  Size of lpProfileDir | 
      | // |   | // | 
      | // Returns:  TRUE if successful |   | // Returns:  TRUE if successful | 
      | //           FALSE if not.  Call GetLastError() for more details |   | //           FALSE if not.  Call GetLastError() for more details | 
      | // |   | // | 
       |   |  | 
      | skipping to change at line 479 |   | skipping to change at line 514 | 
      | // dwOptions -  Option specifying the kind of refresh that needs to be done. |   | // dwOptions -  Option specifying the kind of refresh that needs to be done. | 
      | // |   | // | 
      | // Returns:  TRUE if successful |   | // Returns:  TRUE if successful | 
      | //           FALSE if not.  Call GetLastError() for more details |   | //           FALSE if not.  Call GetLastError() for more details | 
      | // |   | // | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | #if(WINVER >= 0x0500) |   | #if(WINVER >= 0x0500) | 
       |   |  | 
      | #define RP_FORCE            1      // Refresh policies without any optimisations
. |   | #define RP_FORCE            1      // Refresh policies without any optimisations
. | 
       | 
       |   | #define RP_SYNC             2      // Refresh Policy sync; the call does not ret
urn till the time policy processing is completed | 
       |   |  | 
      | USERENVAPI |   | USERENVAPI | 
      | BOOL |   | BOOL | 
      | WINAPI |   | WINAPI | 
      | RefreshPolicyEx( |   | RefreshPolicyEx( | 
      |     IN BOOL bMachine, IN DWORD dwOptions); |   |     IN BOOL bMachine, IN DWORD dwOptions); | 
       |   |  | 
      | #endif /* WINVER >= 0x0500 */ |   | #endif /* WINVER >= 0x0500 */ | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | skipping to change at line 787 |   | skipping to change at line 823 | 
      | typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT; |   | typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT; | 
      | #endif // UNICODE |   | #endif // UNICODE | 
       |   |  | 
      | // |   | // | 
      | // dwFlags for GetGPOList() |   | // dwFlags for GetGPOList() | 
      | // |   | // | 
       |   |  | 
      | #define GPO_LIST_FLAG_MACHINE        0x00000001  // Return machine policy inform
ation |   | #define GPO_LIST_FLAG_MACHINE        0x00000001  // Return machine policy inform
ation | 
      | #define GPO_LIST_FLAG_SITEONLY       0x00000002  // Return site policy informati
on only |   | #define GPO_LIST_FLAG_SITEONLY       0x00000002  // Return site policy informati
on only | 
      | #define GPO_LIST_FLAG_NO_WMIFILTERS  0x00000004  // Ignore WMI filters when filt
ering GPO's |   | #define GPO_LIST_FLAG_NO_WMIFILTERS  0x00000004  // Ignore WMI filters when filt
ering GPO's | 
       | 
       |   | #define GPO_LIST_FLAG_NO_SECURITYFILTERS 0x00000008 // Ignore security filters | 
       |   |  | 
      | USERENVAPI |   | USERENVAPI | 
      | BOOL |   | BOOL | 
      | WINAPI |   | WINAPI | 
      | GetGPOListA ( |   | GetGPOListA ( | 
      |     IN HANDLE hToken, |   |     IN HANDLE hToken, | 
      |     IN LPCSTR lpName, |   |     IN LPCSTR lpName, | 
      |     IN LPCSTR lpHostName, |   |     IN LPCSTR lpHostName, | 
      |     IN LPCSTR lpComputerName, |   |     IN LPCSTR lpComputerName, | 
      |     IN DWORD dwFlags, |   |     IN DWORD dwFlags, | 
       |   |  | 
      | skipping to change at line 978 |   | skipping to change at line 1015 | 
      | #define GPO_INFO_FLAG_SLOWLINK             0x00000020  // Policy is being applie
d across a slow link |   | #define GPO_INFO_FLAG_SLOWLINK             0x00000020  // Policy is being applie
d across a slow link | 
      | #define GPO_INFO_FLAG_VERBOSE              0x00000040  // Verbose output to the 
eventlog |   | #define GPO_INFO_FLAG_VERBOSE              0x00000040  // Verbose output to the 
eventlog | 
      | #define GPO_INFO_FLAG_NOCHANGES            0x00000080  // No changes were detect
ed to the Group Policy Objects |   | #define GPO_INFO_FLAG_NOCHANGES            0x00000080  // No changes were detect
ed to the Group Policy Objects | 
      | #define GPO_INFO_FLAG_LINKTRANSITION       0x00000100  // A change in link speed
 was detected between previous policy |   | #define GPO_INFO_FLAG_LINKTRANSITION       0x00000100  // A change in link speed
 was detected between previous policy | 
      |                                                        // application and curren
t policy application |   |                                                        // application and curren
t policy application | 
      | #define GPO_INFO_FLAG_LOGRSOP_TRANSITION   0x00000200  // A Change in Rsop Loggi
ng was detected between previous policy |   | #define GPO_INFO_FLAG_LOGRSOP_TRANSITION   0x00000200  // A Change in Rsop Loggi
ng was detected between previous policy | 
      |                                                        // application and curren
t policy application, (new intf only) |   |                                                        // application and curren
t policy application, (new intf only) | 
      | #define GPO_INFO_FLAG_FORCED_REFRESH       0x00000400  // Forced Refresh is bein
g applied. redo policies. |   | #define GPO_INFO_FLAG_FORCED_REFRESH       0x00000400  // Forced Refresh is bein
g applied. redo policies. | 
      | #define GPO_INFO_FLAG_SAFEMODE_BOOT        0x00000800  // windows safe mode boot
 flag |   | #define GPO_INFO_FLAG_SAFEMODE_BOOT        0x00000800  // windows safe mode boot
 flag | 
      | #define GPO_INFO_FLAG_ASYNC_FOREGROUND     0x00001000  // Asynchronous foregroun
d refresh of policy |   | #define GPO_INFO_FLAG_ASYNC_FOREGROUND     0x00001000  // Asynchronous foregroun
d refresh of policy | 
       | 
      | #define GPO_INFO_FLAG_REPORT               0x00002000  // Report all settings fo
r one GPO rather than the resultant settings across multiple GPOs |   |  | 
       |   |  | 
      | typedef UINT_PTR ASYNCCOMPLETIONHANDLE; |   | typedef UINT_PTR ASYNCCOMPLETIONHANDLE; | 
      | typedef DWORD (*PFNSTATUSMESSAGECALLBACK)(BOOL bVerbose, LPWSTR lpMessage); |   | typedef DWORD (*PFNSTATUSMESSAGECALLBACK)(BOOL bVerbose, LPWSTR lpMessage); | 
       |   |  | 
      | typedef DWORD(*PFNPROCESSGROUPPOLICY)( |   | typedef DWORD(*PFNPROCESSGROUPPOLICY)( | 
      |     IN DWORD dwFlags,                              // GPO_INFO_FLAGS |   |     IN DWORD dwFlags,                              // GPO_INFO_FLAGS | 
      |     IN HANDLE hToken,                              // User or machine token |   |     IN HANDLE hToken,                              // User or machine token | 
      |     IN HKEY hKeyRoot,                              // Root of registry |   |     IN HKEY hKeyRoot,                              // Root of registry | 
      |     IN PGROUP_POLICY_OBJECT  pDeletedGPOList,      // Linked list of deleted GPO
s |   |     IN PGROUP_POLICY_OBJECT  pDeletedGPOList,      // Linked list of deleted GPO
s | 
      |     IN PGROUP_POLICY_OBJECT  pChangedGPOList,      // Linked list of changed GPO
s |   |     IN PGROUP_POLICY_OBJECT  pChangedGPOList,      // Linked list of changed GPO
s | 
       |   |  | 
      | skipping to change at line 1107 |   | skipping to change at line 1143 | 
      | // |   | // | 
      | // pSecurityDescriptor  - Security Descriptor on the object |   | // pSecurityDescriptor  - Security Descriptor on the object | 
      | // pPrincipalSelfSid    - Principal Sid |   | // pPrincipalSelfSid    - Principal Sid | 
      | // pRsopToken           - Pointer to a valid RSOPTOKEN against which access need
s to be checked |   | // pRsopToken           - Pointer to a valid RSOPTOKEN against which access need
s to be checked | 
      | // dwDesiredAccessMask  - Mask of requested generic and/or standard and or speci
fic access rights |   | // dwDesiredAccessMask  - Mask of requested generic and/or standard and or speci
fic access rights | 
      | // pObjectTypeList      - Object Type List |   | // pObjectTypeList      - Object Type List | 
      | // ObjectTypeListLength - Object Type List Length |   | // ObjectTypeListLength - Object Type List Length | 
      | // pGenericMapping      - Generic Mapping |   | // pGenericMapping      - Generic Mapping | 
      | // pPrivilegeSet        - privilege set |   | // pPrivilegeSet        - privilege set | 
      | // pdwPrivilegeSetLength- privilege set length |   | // pdwPrivilegeSetLength- privilege set length | 
       | 
      | // pdwGrantedAccessMask        - On success, if pbAccessStatus is true, it conta
ins |   | // pdwGrantedAccessMask - On success, if pbAccessStatus is true, it contains | 
      | //                                         the mask of standard and specific rig
hts granted. |   | //                                         the mask of standard and specific rig
hts granted. | 
      | //                                         If pbAccessStatus is false, it is set
 to 0. |   | //                                         If pbAccessStatus is false, it is set
 to 0. | 
      | //                                         On failure, it is not modified. |   | //                                         On failure, it is not modified. | 
      | // pbAccessStatus       - On success, indicates wether the requested set |   | // pbAccessStatus       - On success, indicates wether the requested set | 
      | //                                    of access rights was granted. |   | //                                    of access rights was granted. | 
      | //                                    On failure, it is not modified |   | //                                    On failure, it is not modified | 
      | // |   | // | 
      | // Returns S_OK on success or appropriate error code. |   | // Returns S_OK on success or appropriate error code. | 
      | // For additional details, look at the documentation of AccessCheckByType |   | // For additional details, look at the documentation of AccessCheckByType | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | skipping to change at line 1150 |   | skipping to change at line 1186 | 
      | // |   | // | 
      | // Function:    RsopFileAccessCheck |   | // Function:    RsopFileAccessCheck | 
      | // |   | // | 
      | // Description: Determines whether the security descriptor on the file grants th
e set of file access |   | // Description: Determines whether the security descriptor on the file grants th
e set of file access | 
      | //                              rights specified in dwDesiredAccessMask |   | //                              rights specified in dwDesiredAccessMask | 
      | //                              to the client identified by the RSOPTOKEN pointe
d to by pRsopToken. |   | //                              to the client identified by the RSOPTOKEN pointe
d to by pRsopToken. | 
      | // |   | // | 
      | // pszFileName          - Name of an existing filename |   | // pszFileName          - Name of an existing filename | 
      | // pRsopToken           - Pointer to a valid RSOPTOKEN against which access need
s to be checked |   | // pRsopToken           - Pointer to a valid RSOPTOKEN against which access need
s to be checked | 
      | // dwDesiredAccessMask  - Mask of requested generic and/or standard and or speci
fic access rights |   | // dwDesiredAccessMask  - Mask of requested generic and/or standard and or speci
fic access rights | 
       | 
      | // pdwGrantedAccessMask        - On success, if pbAccessStatus is true, it conta
ins |   | // pdwGrantedAccessMask - On success, if pbAccessStatus is true, it contains | 
      | //                                         the mask of standard and specific rig
hts granted. |   | //                                         the mask of standard and specific rig
hts granted. | 
      | //                                         If pbAccessStatus is false, it is set
 to 0. |   | //                                         If pbAccessStatus is false, it is set
 to 0. | 
      | //                                         On failure, it is not modified. |   | //                                         On failure, it is not modified. | 
      | // pbAccessStatus       - On success, indicates wether the requested set |   | // pbAccessStatus       - On success, indicates wether the requested set | 
      | //                                    of access rights was granted. |   | //                                    of access rights was granted. | 
      | //                                    On failure, it is not modified |   | //                                    On failure, it is not modified | 
      | // |   | // | 
      | // Returns S_OK on success or appropriate error code |   | // Returns S_OK on success or appropriate error code | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
       |   |  | 
      | skipping to change at line 1177 |   | skipping to change at line 1213 | 
      |     IN  LPWSTR pszFileName, |   |     IN  LPWSTR pszFileName, | 
      |     IN  PRSOPTOKEN pRsopToken, |   |     IN  PRSOPTOKEN pRsopToken, | 
      |     IN  DWORD dwDesiredAccessMask, |   |     IN  DWORD dwDesiredAccessMask, | 
      |     OUT LPDWORD pdwGrantedAccessMask, |   |     OUT LPDWORD pdwGrantedAccessMask, | 
      |     OUT LPBOOL pbAccessStatus); |   |     OUT LPBOOL pbAccessStatus); | 
       |   |  | 
      | #endif /* WINVER >= 0x0500 */ |   | #endif /* WINVER >= 0x0500 */ | 
       |   |  | 
      | typedef enum _SETTINGSTATUS |   | typedef enum _SETTINGSTATUS | 
      | { |   | { | 
       | 
      |        RSOPUnspecified = 0, |   |         RSOPUnspecified = 0, | 
      |        RSOPApplied, |   |         RSOPApplied, | 
      |        RSOPIgnored, |   |         RSOPIgnored, | 
      |        RSOPFailed, |   |         RSOPFailed, | 
      |        RSOPSubsettingFailed |   |         RSOPSubsettingFailed | 
      | } SETTINGSTATUS; |   | } SETTINGSTATUS; | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
      | // |   | // | 
      | //  POLICYSETTINGSTATUSINFO |   | //  POLICYSETTINGSTATUSINFO | 
      | // |   | // | 
      | //  Describes the instance of RSOP_PolicySettingStatus |   | //  Describes the instance of RSOP_PolicySettingStatus | 
      | // |   | // | 
      | //  szKey               - OPTIONAL, if NULL, the key is generated on the fly |   | //  szKey               - OPTIONAL, if NULL, the key is generated on the fly | 
      | //  szEventSource       - name of the source generation event log messages |   | //  szEventSource       - name of the source generation event log messages | 
      | //  szEventLogName      - name of the event log database where the messages are 
logged |   | //  szEventLogName      - name of the event log database where the messages are 
logged | 
      | //  dwEventID           - event log message ID |   | //  dwEventID           - event log message ID | 
      | //  status              - status of the policy setting |   | //  status              - status of the policy setting | 
      | //  timeLogged          - time at which the event log message was logged |   | //  timeLogged          - time at which the event log message was logged | 
      | // |   | // | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | typedef struct _POLICYSETTINGSTATUSINFO |   | typedef struct _POLICYSETTINGSTATUSINFO | 
      | { |   | { | 
       | 
      |        LPWSTR                  szKey; |   |         LPWSTR                  szKey; | 
      |        LPWSTR                  szEventSource; |   |         LPWSTR                  szEventSource; | 
      |        LPWSTR                  szEventLogName; |   |         LPWSTR                  szEventLogName; | 
      |        DWORD                   dwEventID; |   |         DWORD                   dwEventID; | 
      |        DWORD                   dwErrorCode; |   |         DWORD                   dwErrorCode; | 
      |        SETTINGSTATUS   status; |   |         SETTINGSTATUS   status; | 
      |        SYSTEMTIME              timeLogged; |   |         SYSTEMTIME              timeLogged; | 
      | } POLICYSETTINGSTATUSINFO, *LPPOLICYSETTINGSTATUSINFO; |   | } POLICYSETTINGSTATUSINFO, *LPPOLICYSETTINGSTATUSINFO; | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
      | // |   | // | 
      | //  RsopSetPolicySettingStatus |   | //  RsopSetPolicySettingStatus | 
      | // |   | // | 
      | //  Creates an instance of RSOP_PolicySettingStatus and RSOP_PolicySettingLink |   | //  Creates an instance of RSOP_PolicySettingStatus and RSOP_PolicySettingLink | 
      | //  and links RSOP_PolicySettingStatus to RSOP_PolicySetting |   | //  and links RSOP_PolicySettingStatus to RSOP_PolicySetting | 
      | // |   | // | 
      | //  dwFlags             - flags |   | //  dwFlags             - flags | 
       |   |  | 
      | skipping to change at line 1233 |   | skipping to change at line 1269 | 
      | //  Return:     S_OK if successful, HRESULT otherwise |   | //  Return:     S_OK if successful, HRESULT otherwise | 
      | // |   | // | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | USERENVAPI |   | USERENVAPI | 
      | HRESULT |   | HRESULT | 
      | WINAPI |   | WINAPI | 
      | RsopSetPolicySettingStatus( DWORD                       dwFlags, |   | RsopSetPolicySettingStatus( DWORD                       dwFlags, | 
      |                             IWbemServices*              pServices, |   |                             IWbemServices*              pServices, | 
      |                             IWbemClassObject*           pSettingInstance, |   |                             IWbemClassObject*           pSettingInstance, | 
       | 
      |                             DWORD                                      nInfo, |   |                             DWORD                                       nInfo, | 
      |                             POLICYSETTINGSTATUSINFO*    pStatus ); |   |                             POLICYSETTINGSTATUSINFO*    pStatus ); | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
      | // |   | // | 
      | //  RsopResetPolicySettingStatus |   | //  RsopResetPolicySettingStatus | 
      | // |   | // | 
      | //  Unlinks RSOP_PolicySettingStatus from RSOP_PolicySetting, |   | //  Unlinks RSOP_PolicySettingStatus from RSOP_PolicySetting, | 
      | //  deletes the instance of RSOP_PolicySettingStatus and RSOP_PolicySettingLink |   | //  deletes the instance of RSOP_PolicySettingStatus and RSOP_PolicySettingLink | 
      | //  and optionally deletes the instance of RSOP_PolicySetting |   | //  and optionally deletes the instance of RSOP_PolicySetting | 
      | // |   | // | 
       |   |  | 
      | skipping to change at line 1277 |   | skipping to change at line 1313 | 
      | #define FLAG_NO_CSE_INVOKE      0x40000000  // only GP processing done for plann
ing mode |   | #define FLAG_NO_CSE_INVOKE      0x40000000  // only GP processing done for plann
ing mode | 
      | #define FLAG_ASSUME_SLOW_LINK   0x20000000  // planning mode RSoP assumes slow l
ink |   | #define FLAG_ASSUME_SLOW_LINK   0x20000000  // planning mode RSoP assumes slow l
ink | 
      | #define FLAG_LOOPBACK_MERGE     0x10000000  // planning mode RSoP assumes merge 
loop back |   | #define FLAG_LOOPBACK_MERGE     0x10000000  // planning mode RSoP assumes merge 
loop back | 
      | #define FLAG_LOOPBACK_REPLACE   0x08000000  // planning mode RSoP assumes replac
e loop back |   | #define FLAG_LOOPBACK_REPLACE   0x08000000  // planning mode RSoP assumes replac
e loop back | 
       |   |  | 
      | #define FLAG_ASSUME_USER_WQLFILTER_TRUE   0x04000000  // planning mode RSoP assu
mes all comp filters to be true |   | #define FLAG_ASSUME_USER_WQLFILTER_TRUE   0x04000000  // planning mode RSoP assu
mes all comp filters to be true | 
      | #define FLAG_ASSUME_COMP_WQLFILTER_TRUE   0x02000000  // planning mode RSoP assu
mes all user filters to be true |   | #define FLAG_ASSUME_COMP_WQLFILTER_TRUE   0x02000000  // planning mode RSoP assu
mes all user filters to be true | 
       |   |  | 
      | #define FLAG_PLANNING_MODE                0x01000000  // flag that indicates tha
t a given namespace was created |   | #define FLAG_PLANNING_MODE                0x01000000  // flag that indicates tha
t a given namespace was created | 
      |                                                       // for planning mode. This
 flag cannot be passed in but the |   |                                                       // for planning mode. This
 flag cannot be passed in but the | 
       | 
      |                                                      // relevant subnamespace wi
ll be marked with this flag |   |                                                       // relevant subnamespace w
ill be marked with this flag | 
       |   |  | 
      | // diagnostic mode provider flags |   | // diagnostic mode provider flags | 
      | #define FLAG_NO_USER                      0x00000001  // Don't get any user data |   | #define FLAG_NO_USER                      0x00000001  // Don't get any user data | 
      | #define FLAG_NO_COMPUTER                  0x00000002  // Don't get any machine d
ata |   | #define FLAG_NO_COMPUTER                  0x00000002  // Don't get any machine d
ata | 
      | #define FLAG_FORCE_CREATENAMESPACE        0x00000004 |   | #define FLAG_FORCE_CREATENAMESPACE        0x00000004 | 
      |                    // Delete and recreate the namespace for this snapshot. |   |                    // Delete and recreate the namespace for this snapshot. | 
       |   |  | 
      | //============================================================================= |   | //============================================================================= | 
      | // |   | // | 
      | // Extended Errors returned by RSoP WMI Providers |   | // Extended Errors returned by RSoP WMI Providers | 
      | // |   | // | 
      | //============================================================================= |   | //============================================================================= | 
       |   |  | 
      | // User accessing the rsop provider doesn't have access to user data. |   | // User accessing the rsop provider doesn't have access to user data. | 
       | 
      | #define RSOP_USER_ACCESS_DENIED        0x00000001 |   | #define RSOP_USER_ACCESS_DENIED         0x00000001 | 
       |   |  | 
      | // User accessing the rsop provider doesn't have access to computer data. |   | // User accessing the rsop provider doesn't have access to computer data. | 
       | 
      | #define RSOP_COMPUTER_ACCESS_DENIED    0x00000002 |   | #define RSOP_COMPUTER_ACCESS_DENIED     0x00000002 | 
       |   |  | 
      | // This user is an interactive non admin user, the temp snapshot namespace alrea
dy exists |   | // This user is an interactive non admin user, the temp snapshot namespace alrea
dy exists | 
      | // and the FLAG_FORCE_CREATENAMESPACE was not passed in |   | // and the FLAG_FORCE_CREATENAMESPACE was not passed in | 
      | #define RSOP_TEMPNAMESPACE_EXISTS        0x00000004 |   | #define RSOP_TEMPNAMESPACE_EXISTS        0x00000004 | 
       |   |  | 
      | #ifdef __cplusplus |   | #ifdef __cplusplus | 
      | } |   | } | 
      | #endif |   | #endif | 
       |   |  | 
      | #endif // _INC_USERENV |   | #endif // _INC_USERENV | 
      |   |  | 
     |  End of changes. 12 change blocks.  | 
     | 19 lines changed or deleted |   | 55 lines changed or added | 
      |