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 に設定する必要があります。
戻り値
少なくとも 1 つのFILE_QUOTA_INFORMATION構造体が Buffer パラメーターで返された場合、または次のいずれかの適切な NTSTATUS 値が返された場合、NtQueryQuotaInformationFile ルーチンは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 バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h、FltKernel.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDIs、PowerIrpDDis |