You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
//+-------------------------------------------------------------------
|
|
//
|
|
// File: DUMPSEC.hxx
|
|
//
|
|
// Contents: class encapsulating file security.
|
|
//
|
|
// Classes: CDumpSecurity
|
|
//
|
|
// History: Nov-93 Created DaveMont
|
|
//
|
|
//--------------------------------------------------------------------
|
|
#ifndef __DUMPSEC__
|
|
#define __DUMPSEC__
|
|
|
|
#include "t2.hxx"
|
|
|
|
//+-------------------------------------------------------------------
|
|
//
|
|
// Class: CDumpSecurity
|
|
//
|
|
// Purpose: encapsulation of NT File security descriptor with functions
|
|
// to get SIDs and iterate through the ACES in the DACL.
|
|
//
|
|
//--------------------------------------------------------------------
|
|
class CDumpSecurity
|
|
{
|
|
public:
|
|
|
|
CDumpSecurity(LPWSTR filename);
|
|
|
|
~CDumpSecurity();
|
|
|
|
ULONG Init();
|
|
ULONG GetSDOwner(SID **psid);
|
|
ULONG GetSDGroup(SID **pgsid);
|
|
VOID ResetAce(SID *psid);
|
|
LONG GetNextAce(ACE_HEADER **paceh);
|
|
BOOL IsDaclNull() const { return _bNullDacl;}
|
|
|
|
private:
|
|
|
|
BYTE * _psd ;
|
|
LPWSTR _pfilename ;
|
|
LPWSTR _pwfilename ;
|
|
ACL * _pdacl ;
|
|
ACE_HEADER * _pah ;
|
|
SID * _psid ;
|
|
ULONG _cacethissid; // a dinosaur from the cretaceous
|
|
BOOL _bNullDacl;
|
|
};
|
|
|
|
#endif // __DUMPSEC__
|
|
|
|
|
|
|
|
|
|
|