次の方法で共有


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

こちらもご覧ください

FILE_QUOTA_INFORMATION

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA