次の方法で共有


NtQueryQuotaInformationFile 関数 (ntifs.h)

NtQueryQuotaInformationFile ルーチンは、FileHandle パラメーターで指定されたボリュームに関連付けられているクォータ エントリを取得します。

構文

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryQuotaInformationFile(
  [in]           HANDLE           FileHandle,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in]           BOOLEAN          ReturnSingleEntry,
  [in, optional] PVOID            SidList,
  [in]           ULONG            SidListLength,
  [in, optional] PSID             StartSid,
  [in]           BOOLEAN          RestartScan
);

パラメーター

[in] FileHandle

クォータ情報が要求されるファイルまたはボリュームを表すファイル オブジェクトのハンドル。

[out] IoStatusBlock

呼び出し元の I/O 状態ブロックのアドレス。

[out] Buffer

ボリュームのクォータ情報を受信するバッファー。 クォータ情報は、1 つ以上の FILE_QUOTA_INFORMATION 構造体として書式設定されます。 FILE_QUOTA_INFORMATION 構造体の NextEntryOffset フィールドには、リスト内の次のクォータ エントリのオフセット (バイト単位) が含まれています。 現在のエントリの後にエントリが存在しない場合、このメンバーは 0 になります。

[in] Length

バッファーの長さ (バイト単位)。

[in] ReturnSingleEntry

バッファーにできるだけ多くのエントリを格納するのではなく、1 つのエントリのみを返す必要があるかどうかを示すブール値。

[in, optional] SidList

クォータ情報が返される SID の省略可能なリスト。 リスト内の各エントリは FILE_GET_QUOTA_INFORMATION 構造です。 FILE_GET_QUOTA_INFORMATION 構造体の NextEntryOffset フィールドには、リスト内の次のクォータ エントリのオフセット (バイト単位) が含まれています。 現在のエントリの後にエントリが存在しない場合、このメンバーは 0 になります。

[in] SidListLength

SID リストの長さ (指定されている場合)。

[in, optional] StartSid

クォータ情報のスキャンを開始するエントリの SID への省略可能なポインター。 返される情報が最初の SID 以外のエントリで始まる場合は、このパラメーターを設定する必要があります。 SidList パラメーターが指定されている場合、このパラメーターは無視されます。

[in] RestartScan

クォータ情報のスキャンを最初から再開するかどうかを示すブール値。 クォータ情報のスキャンがボリュームのクォータ情報リストの最初のエントリから開始する場合は、このパラメーターを TRUE に設定します。 NtQueryQuotaInformationFile への前回の呼び出しからスキャンを再開する場合は、FALSE 設定します。 NtQueryQuotaInformationFile を初めて呼び出すときに、呼び出し元はこのパラメーター TRUE を に設定する必要があります。

戻り値

NtQueryQuotaInformationFile ルーチンは、Buffer パラメーターに少なくとも 1 つの FILE_QUOTA_INFORMATION 構造体が返された場合、または次のいずれかの適切な NTSTATUS 値が返された場合、STATUS_SUCCESSを返します。

リターン コード 形容
STATUS_INSUFFICIENT_RESOURCES 操作を完了するためのリソースが不足していました。 これはエラー コードです。
STATUS_INVALID_DEVICE_REQUEST クォータはボリュームで有効になっていません。 これはエラー コードです。
STATUS_INVALID_SID StartSid パラメーターに、有効な SIDが含まれていませんでした。 これはエラー コードです。
STATUS_QUOTA_LIST_INCONSISTENT SidList パラメーターに、正しい形式の有効なリストが含まれていませんでした。 これはエラー コードです。

備考

NtQueryQuotaInformationFile によって返される情報の量は、ボリュームに関連付けられているクォータ情報のサイズ、バッファーのサイズ、および特定のエントリセットが要求されたかどうかに基づきます。

NtQueryQuotaInformationFile 呼び出すと、FileHandle パラメーターにハンドルが格納されているファイル オブジェクトに関連付けられているデバイス オブジェクトに IRP_MJ_SET_QUOTA 要求が送信されます。

基になるファイル システムがクォータ情報 (FAT や CDFS ファイル システムなど) をサポートしていない場合、ntQueryQuotaInformationFile はSTATUS_INVALID_DEVICE_REQUESTを返しません。

手記

NtQueryQuotaInformationFile 関数の呼び出しがカーネル モードで発生する場合は、"NtQueryQuotaInformationFile" ではなく"ZwQueryQuotaInformationFile" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 7
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h、FltKernel.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 を する HwStorPortProhibitedDIs、PowerIrpDDis

関連項目

FILE_GET_QUOTA_INFORMATION

FILE_QUOTA_INFORMATION

IO_STATUS_BLOCK

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA

IoCheckQuotaBufferValidity

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

**NtSetQuotaInformationFile **