Win32 API 日本語リファレンス
ホームStorage.FileSystem › IDiskQuotaUser

IDiskQuotaUser

COM
IID7988b574-ec89-11cf-9c00-00aa00a14f56継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ボリュームのクォータ情報ファイル内にある 1 件のユーザークォータエントリを表します。

メソッド 15

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetID(DWORD* pulID)

DiskQuotaUser オブジェクトの一意な識別子 (ID) 番号を取得します。

pulIDDWORD*inoutディスククォータユーザーに関連付けられた名前文字列。

戻り値

このメソッドは S_OK を返します。

vtbl 4 HRESULT GetName(LPWSTR pszAccountContainer, DWORD cchAccountContainer, LPWSTR pszLogonName, DWORD cchLogonName, LPWSTR pszDisplayName, DWORD cchDisplayName)

ディスククォータユーザーに関連付けられた名前文字列を取得します。

pszAccountContainerLPWSTRinユーザーのアカウントコンテナーの名前。この値は NULL にできます。ディレクトリサービス情報を持たないアカウントの場合、この文字列は単にドメイン名になります。ディレクトリサービス情報が利用可能なアカウントの場合、この文字列は終端のオブジェクト名を除いた正規名 (canonical name) になります。
cchAccountContainerDWORDinアカウントコンテナーバッファーのサイズ (文字数単位)。pszAccountContainerNULL の場合は無視されます。
pszLogonNameLPWSTRinユーザーがコンピューターへのログオン時に指定した名前を受け取るバッファーへのポインター。この値は NULL にできます。返される名前の形式は、ディレクトリサービス情報が利用可能かどうかによって異なります。
cchLogonNameDWORDinログオン名バッファーのサイズ (文字数単位)。pszLogonNameNULL の場合は無視されます。
pszDisplayNameLPWSTRinクォータユーザーの表示名を受け取るバッファーへのポインター。この値は NULL にできます。情報が利用できない場合は、長さ 0 の文字列が返されます。
cchDisplayNameDWORDin表示名バッファーのサイズ (文字数単位)。pszDisplayNameNULL の場合は無視されます。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
vtbl 5 HRESULT GetSidLength(DWORD* pdwLength)

ユーザーのセキュリティ識別子 (SID) の長さをバイト単位で取得します。

pdwLengthDWORD*inoutSID の長さ (バイト単位)。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
pdwLength パラメーターが NULL です。
ERROR_INVALID_SID
ユーザーの SID が無効です。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
vtbl 6 HRESULT GetSid(BYTE* pbSidBuffer, DWORD cbSidBuffer)

ユーザーのセキュリティ識別子 (SID) を取得します。(IDiskQuotaUser.GetSid)

pbSidBufferBYTE*inoutSID。
cbSidBufferDWORDinバッファーのサイズ (バイト単位)。必要なバッファーサイズを取得するには IDiskQuotaUser::GetSidLength メソッドを使用してください。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
pbSidBuffer パラメーターが NULL です。
ERROR_INVALID_SID
ユーザーの SID が無効です。
ERROR_INSUFFICIENT_BUFFER
書き込み先のバッファーサイズが不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
vtbl 7 HRESULT GetQuotaThreshold(LONGLONG* pllThreshold)

ボリューム上のユーザーの警告しきい値を取得します。

pllThresholdLONGLONG*inout警告しきい値。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pllThreshold パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 8 HRESULT GetQuotaThresholdText(LPWSTR pszText, DWORD cchText)

ボリュームにおけるユーザーの警告しきい値をテキストとして取得します。

pszTextLPWSTRinテキスト文字列。
cchTextDWORDin書き込み先バッファーのサイズ (文字数単位)。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pszText パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 9 HRESULT GetQuotaLimit(LONGLONG* pllLimit)

ボリューム上のユーザーのクォータ制限値を取得します。

pllLimitLONGLONG*inout制限値。この値が -1 の場合、ユーザーのクォータは無制限です。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pllLimit パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 10 HRESULT GetQuotaLimitText(LPWSTR pszText, DWORD cchText)

ボリュームにおけるユーザーのクォータ制限をテキストとして取得します。

pszTextLPWSTRinテキスト文字列。
cchTextDWORDinバッファーのサイズ (文字数単位)。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pszText パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 11 HRESULT GetQuotaUsed(LONGLONG* pllUsed)

ボリューム上のユーザーのクォータ使用量を取得します。

pllUsedLONGLONG*inoutクォータの使用量。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pllUsed パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 12 HRESULT GetQuotaUsedText(LPWSTR pszText, DWORD cchText)

ボリュームにおけるユーザーのクォータ使用量をテキストとして取得します。

pszTextLPWSTRinテキスト文字列。
cchTextDWORDinバッファーのサイズ (バイト単位)。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pszText パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 13 HRESULT GetQuotaInformation(void* pbQuotaInfo, DWORD cbQuotaInfo)

ユーザーの警告しきい値、ハードクォータ制限、およびクォータ使用量の各値を取得します。

pbQuotaInfovoid*inoutクォータ情報を受け取る DISKQUOTA_USER_INFORMATION 構造体へのポインター。
cbQuotaInfoDWORDinクォータ情報構造体のサイズ (バイト単位)。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_INVALIDARG
pQuotaInfo パラメーターが NULL です。
E_OUTOFMEMORY
メモリが不足しています。
E_FAIL
予期しないファイルシステムエラーが発生しました。
E_UNEXPECTED
予期しない例外が発生しました。
vtbl 14 HRESULT SetQuotaThreshold(LONGLONG llThreshold, BOOL fWriteThrough)

ボリューム上のユーザーの警告しきい値を設定します。

llThresholdLONGLONGin警告しきい値 (バイト単位)。
fWriteThroughBOOLinこの値が TRUE の場合、値はただちにボリュームのクォータファイルへ書き込まれます。それ以外の場合、値はクォータユーザーオブジェクトのローカルメモリにのみ書き込まれます。通常はこの値を TRUE に設定してください。 IDiskQuotaUserBatch インターフェイスを使用して複数のユーザークォータエントリを同時に変更する場合は、FALSE に設定します。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_FAIL
予期しないファイルシステムエラーが発生しました。
vtbl 15 HRESULT SetQuotaLimit(LONGLONG llLimit, BOOL fWriteThrough)

ボリューム上のユーザーのクォータ制限値を設定します。

llLimitLONGLONGinクォータ制限 (バイト単位)。この値が -1 の場合、ユーザーのクォータは無制限です。
fWriteThroughBOOLinこの値が TRUE の場合、値はただちにボリュームのクォータファイルへ書き込まれます。それ以外の場合、値はクォータユーザーオブジェクトのローカルメモリにのみ書き込まれます。通常はこの値を TRUE に設定してください。 IDiskQuotaUserBatch インターフェイスを使用して複数のユーザークォータエントリを一度に変更する場合は、FALSE に設定します。

戻り値

このメソッドはファイルシステムエラー、または次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
ERROR_ACCESS_DENIED
呼び出し元のアクセス権が不足しています。
ERROR_LOCK_FAILED
排他ロックの取得に失敗しました。
E_FAIL
予期しないファイルシステムエラーが発生しました。
vtbl 16 HRESULT Invalidate()

クォータユーザーオブジェクトに格納されているクォータ情報を無効化します。

戻り値

このメソッドは S_OK を返します。

vtbl 17 HRESULT GetAccountStatus(DWORD* pdwStatus)

ユーザーオブジェクトのアカウントの状態を取得します。

pdwStatusDWORD*inout

ユーザーのアカウントの状態。状態値は次のいずれかになります。

意味
DISKQUOTA_USER_ACCOUNT_RESOLVED
0
SID がユーザーアカウントに解決されました。名前は IDiskQuotaUser::GetName から取得できます。
DISKQUOTA_USER_ACCOUNT_UNAVAILABLE
1
現時点ではユーザーアカウントを利用できません。ネットワークのドメインコントローラーが利用できない可能性があります。名前情報は取得できません。
DISKQUOTA_USER_ACCOUNT_DELETED
2
ユーザーアカウントはドメインから削除されました。名前情報は取得できません。
DISKQUOTA_USER_ACCOUNT_INVALID
3
ユーザーアカウントが無効です。名前情報は取得できません。
DISKQUOTA_USER_ACCOUNT_UNKNOWN
4
ユーザーアカウントが不明です。名前情報は取得できません。
DISKQUOTA_USER_ACCOUNT_UNRESOLVED
5
SID はユーザーアカウントに解決されていません。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_INVALIDARG
pdwStatus パラメーターが NULL です。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDiskQuotaUser "{7988B574-EC89-11CF-9C00-00AA00A14F56}"
#usecom global IDiskQuotaUser IID_IDiskQuotaUser "{}"
#comfunc global IDiskQuotaUser_GetID                  3 var
#comfunc global IDiskQuotaUser_GetName                4 wstr,int,wstr,int,wstr,int
#comfunc global IDiskQuotaUser_GetSidLength           5 var
#comfunc global IDiskQuotaUser_GetSid                 6 var,int
#comfunc global IDiskQuotaUser_GetQuotaThreshold      7 var
#comfunc global IDiskQuotaUser_GetQuotaThresholdText  8 wstr,int
#comfunc global IDiskQuotaUser_GetQuotaLimit          9 var
#comfunc global IDiskQuotaUser_GetQuotaLimitText      10 wstr,int
#comfunc global IDiskQuotaUser_GetQuotaUsed           11 var
#comfunc global IDiskQuotaUser_GetQuotaUsedText       12 wstr,int
#comfunc global IDiskQuotaUser_GetQuotaInformation    13 sptr,int
#comfunc global IDiskQuotaUser_SetQuotaThreshold      14 int64,int
#comfunc global IDiskQuotaUser_SetQuotaLimit          15 int64,int
#comfunc global IDiskQuotaUser_Invalidate             16
#comfunc global IDiskQuotaUser_GetAccountStatus       17 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。