IDiskQuotaControl 接口是 Windows 操作系统中与磁盘配额相关的 API 中的一部分,定义在 Dskquota.h 头文件中。该接口提供了管理磁盘配额的功能。

以下是 IDiskQuotaControl 接口的定义:
DECLARE_INTERFACE_(IDiskQuotaControl, IUnknown) {
    STDMETHOD(Initialize)(__RPC__in_opt IUnknown *punkVolume, __RPC__in_opt HWND hwndOwner, __RPC__in_opt LPWSTR pszVolume) = 0;
    STDMETHOD(GetQuotaSettings)(DWORD idName, __RPC__out LPDWORD pdwQuotaState, __RPC__out LPDWORD pdwQuotaThreshold, __RPC__out LPDWORD pdwQuotaLimit, __RPC__out_ecount_full_string( cchUserLogonName ) LPWSTR pszUserLogonName, DWORD cchUserLogonName) = 0;
    STDMETHOD(AddUser)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName) = 0;
    STDMETHOD(DeleteUser)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName) = 0;
    STDMETHOD(ChangeQuotaSettings)(DWORD idName, __RPC__in LPCTSTR pszPath, DWORD dwQuotaThreshold, DWORD dwQuotaLimit) = 0;
    STDMETHOD(LogQuotaThreshold)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, DWORD dwThreshold) = 0;
    STDMETHOD(LogQuotaLimit)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, DWORD dwLimit) = 0;
    STDMETHOD(LogQuotaEntry)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName) = 0;
    STDMETHOD(LogVolumeThreshold)(DWORD dwThreshold) = 0;
    STDMETHOD(LogVolumeLimit)(DWORD dwLimit) = 0;
    STDMETHOD(LogVolumeEntry)(void) = 0;
    STDMETHOD(LogUserThreshold)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, DWORD dwThreshold) = 0;
    STDMETHOD(LogUserLimit)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, DWORD dwLimit) = 0;
    STDMETHOD(LogUserEntry)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName) = 0;
    STDMETHOD(LogQuotaThresholdEx)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, LONGLONG i64Threshold) = 0;
    STDMETHOD(LogQuotaLimitEx)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, LONGLONG i64Limit) = 0;
    STDMETHOD(LogVolumeThresholdEx)(LONGLONG i64Threshold) = 0;
    STDMETHOD(LogVolumeLimitEx)(LONGLONG i64Limit) = 0;
    STDMETHOD(LogUserThresholdEx)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, LONGLONG i64Threshold) = 0;
    STDMETHOD(LogUserLimitEx)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in LPCTSTR pszAccountName, LONGLONG i64Limit) = 0;
    STDMETHOD(InitializeEx)(__RPC__in_opt IUnknown *punkVolume, __RPC__in_opt HWND hwndOwner, __RPC__in_opt LPWSTR pszVolume, DWORD dwFlags, __RPC__in_opt LPVOID pvReserved) = 0;
    STDMETHOD(GetQuotaProperties)(DWORD idName, __RPC__out LPDWORD pdwQuotaFlags, __RPC__out LPDWORD pdwQuotaThreshold, __RPC__out LPDWORD pdwQuotaLimit, __RPC__out_ecount_full_string( cchUserLogonName ) LPWSTR pszUserLogonName, DWORD cchUserLogonName) = 0;
    STDMETHOD(NewProperties)(DWORD idName, __RPC__in LPCTSTR pszPath, DWORD dwQuotaThreshold, DWORD dwQuotaLimit, __RPC__in_opt LPVOID pReserved, DWORD dwReserved) = 0;
    STDMETHOD(SetQuotaProperties)(DWORD idName, __RPC__in LPCTSTR pszPath, __RPC__in_opt LPVOID pReserved, __RPC__in_opt LPVOID pvReserved) = 0;
};

IDiskQuotaControl 接口包含了一系列用于管理磁盘配额的方法,包括初始化、获取配额设置、添加用户、删除用户、更改配额设置等。这些方法提供了对磁盘配额的细粒度控制。

在使用该接口之前,通常需要通过调用 CoCreateInstance 或其他相应的函数来获取 IDiskQuotaControl 接口的实例。

请注意,这是 COM 接口,因此需要使用 COM 的初始化和清理函数。在使用完接口后,需要调用 Release 方法释放资源。


转载请注明出处:http://www.zyzy.cn/article/detail/27326/Win32 API/Dskquota.h/IDiskQuotaControl