IoCheckQuotaBufferValidity 関数 (ntifs.h)
IoCheckQuotaBufferValidity ルーチンは、指定されたクォータ バッファーが有効かどうかを確認します。
構文
NTSTATUS IoCheckQuotaBufferValidity(
[in] PFILE_QUOTA_INFORMATION QuotaBuffer,
[in] ULONG QuotaLength,
[out] PULONG ErrorOffset
);
パラメーター
[in] QuotaBuffer
チェックするクォータ エントリを含むバッファーへのポインター。
[in] QuotaLength
QuotaBuffer の長さ (バイト単位)。
[out] ErrorOffset
エラーが見つかった場合に、クォータ バッファー内の問題のあるエントリのオフセットを受け取る変数。 この変数は、エラーが発生した場合にのみ有効です。
戻り値
クォータ バッファーが有効な場合、IoCheckQuotaBufferValidity はSTATUS_SUCCESSを返します。 それ以外の場合は、クォータ バッファーが ULONG アラインされていない場合は、STATUS_DATATYPE_MISALIGNMENTが返されます。 バッファー内のエントリの位置のずれなど、他のすべてのエラーについて、 IoCheckQuotaBufferValidity はSTATUS_QUOTA_LIST_INCONSISTENTを返します。
注釈
IoCheckQuotaBufferValidity は、指定されたクォータ バッファー内の各FILE_QUOTA_INFORMATIONエントリをチェックして、次の条件が満たされていることを確認します。
エントリ全体がバッファー内に含まれている必要があります。
Sid の値は、セキュリティ識別子 (SID) である必要があります。
SidLength の値は、Sid の値の長さ (バイト単位) と一致する必要があります。
最後を除くすべてのエントリについて、 NextEntryOffset の値は 0 より大きく、ULONG 境界に収まる必要があります。
さらに、 IoCheckQuotaBufferValidity はクォータ バッファーをチェックして、次の条件が満たされていることを確認します。
バッファーは ULONG アラインされている必要があります。
QuotaLength で渡される長さは、バッファーの実際の長さと一致します。
実際のバッファー長は負の値ではない。
有効にするには、クォータ バッファーがこれらすべての条件を満たしている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |