Leaked source code of windows server 2003
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.
 
 
 
 
 
 

167 lines
3.3 KiB

/******************************************************************
DskQuota.H -- WMI provider class definition
Description: Header for Quotasettings class
Copyright (c) 2000-2001 Microsoft Corporation, All Rights Reserved
*******************************************************************/
// Property set identification
//============================
#ifndef _CDISKQUOTA_H_
#define _CDISKQUOTA_H_
#include "precomp.h"
#include "DskQuotaCommon.h"
// Defining bit values for the property, which will be used for defining the bitmap of properties required.
#define DSKQUOTA_ALL_PROPS 0xFFFFFFFF
#define DSKQUOTA_PROP_LogicalDiskObjectPath 0x00000001
#define DSKQUOTA_PROP_UserObjectPath 0x00000002
#define DSKQUOTA_PROP_Status 0x00000004
#define DSKQUOTA_PROP_WarningLimit 0x00000008
#define DSKQUOTA_PROP_Limit 0x00000010
#define DSKQUOTA_PROP_DiskSpaceUsed 0x00000020
class CDiskQuota : public Provider
{
private:
HRESULT EnumerateUsersOfAllVolumes (
MethodContext *pMethodContext,
DWORD dwPropertiesReq
);
HRESULT EnumerateUsers (
MethodContext *pMethodContext,
LPCWSTR a_VolumeName,
DWORD dwPropertiesReq
);
HRESULT LoadDiskQuotaUserProperties (
IDiskQuotaUser* pIQuotaUser,
CInstance *pInstance,
DWORD dwPropertiesReq
);
HRESULT SetKeys (
CInstance *pInstance,
WCHAR w_Drive,
DWORD dwPropertiesReq,
IDiskQuotaUser* pIQuotaUser
);
HRESULT AddUserOnVolume (
const CInstance &Instance,
LPCWSTR a_VolumePathName,
LPCWSTR a_UserLogonName
);
HRESULT UpdateUserQuotaProperties (
const CInstance &Instance,
LPCWSTR a_VolumePathName,
LPCWSTR a_UserLogonName
);
HRESULT CheckParameters (
const CInstance &a_Instance
);
void SetPropertiesReq (
CFrameworkQuery *Query,
DWORD &dwPropertiesReq
);
void ExtractUserLogOnName (
CHString &a_UserLogonName,
CHString &a_DomainName
);
void GetKeyValue (
CHString &a_VolumePath,
LPCWSTR a_VolumeObjectPath
);
BOOL GetDomainAndNameFromSid(
PSID pSid,
CHString& chstrDomain,
CHString& chstrName);
protected:
// Reading Functions
//============================
HRESULT EnumerateInstances (
MethodContext *pMethodContext,
long lFlags = 0L
) ;
HRESULT GetObject (
CInstance *pInstance,
long lFlags,
CFrameworkQuery &Query
) ;
HRESULT ExecQuery (
MethodContext *pMethodContext,
CFrameworkQuery& Query,
long lFlags = 0
) ;
// Writing Functions
//============================
HRESULT PutInstance (
const CInstance& Instance,
long lFlags = 0L
) ;
HRESULT DeleteInstance (
const CInstance& Instance,
long lFlags = 0L
) ;
public:
// Constructor/destructor
//=======================
CDiskQuota(
LPCWSTR lpwszClassName,
LPCWSTR lpwszNameSpace
) ;
virtual ~CDiskQuota () ;
private:
CHString m_ComputerName;
DskCommonRoutines m_CommonRoutine;
};
#endif