83 lines
1.3 KiB
C++
83 lines
1.3 KiB
C++
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1997.
|
||
|
//
|
||
|
// File: security.hxx
|
||
|
//
|
||
|
// Contents:
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
class CSecDescriptor;
|
||
|
|
||
|
BOOL
|
||
|
CheckForAccess(
|
||
|
IN CToken * pToken,
|
||
|
IN SECURITY_DESCRIPTOR * pSD
|
||
|
);
|
||
|
|
||
|
HANDLE
|
||
|
GetRunAsToken(
|
||
|
DWORD clsctx,
|
||
|
WCHAR *pwszAppID,
|
||
|
WCHAR *pwszRunAsDomainName,
|
||
|
WCHAR *pwszRunAsUserName
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
CreateAndSetProcessToken(
|
||
|
PPROCESS_INFORMATION ProcessInformation,
|
||
|
HANDLE hUserToken,
|
||
|
PSID psidUserSid
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
DuplicateTokenForSessionUse(
|
||
|
HANDLE hUserToken,
|
||
|
HANDLE *hDuplicate
|
||
|
);
|
||
|
|
||
|
PSID
|
||
|
GetUserSid(
|
||
|
HANDLE hUserToken
|
||
|
);
|
||
|
|
||
|
HANDLE
|
||
|
GetShellProcessToken(
|
||
|
ULONG ulSessionId
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
InitSidWinsta();
|
||
|
|
||
|
CSecDescriptor*
|
||
|
GetDefaultLaunchPermissions();
|
||
|
|
||
|
void
|
||
|
SetDefaultLaunchPermissions(CSecDescriptor* pNewLaunchPerms);
|
||
|
|
||
|
//
|
||
|
// Small class to add refcount semantics around a security descriptor.
|
||
|
//
|
||
|
class CSecDescriptor
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CSecDescriptor(SECURITY_DESCRIPTOR*);
|
||
|
~CSecDescriptor();
|
||
|
|
||
|
void IncRefCount();
|
||
|
void DecRefCount();
|
||
|
|
||
|
SECURITY_DESCRIPTOR* GetSD();
|
||
|
|
||
|
private:
|
||
|
|
||
|
SECURITY_DESCRIPTOR* _pSD;
|
||
|
LONG _lRefs;
|
||
|
|
||
|
};
|