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 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |