ZwQueryQuotaInformationFile 函式 (ntifs.h)

ZwQueryQuotaInformationFile 例程會擷取與 FileHandle 參數所指定磁碟區相關聯的配額專案。

語法

NTSYSAPI NTSTATUS ZwQueryQuotaInformationFile(
  [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

要接收磁碟區配額信息的緩衝區。 配額資訊會格式化為一或多個 FILE_QUOTA_INFORMATION 結構。 FILE_QUOTA_INFORMATION結構中的 NextEntryOffset 字段包含清單中下一個配額專案的位移,以位元組為單位。 如果目前項目之後沒有其他專案,則此成員為零。

[in] Length

緩衝區的長度,以位元組為單位。

[in] ReturnSingleEntry

布爾值,指出是否只應該傳回單一專案,而不是以盡可能多的專案填滿緩衝區。

[in, optional] SidList

要傳回其配額信息的選擇性 SID 清單。 清單中的每個專案都是 FILE_GET_QUOTA_INFORMATION 結構。 FILE_GET_QUOTA_INFORMATION結構中的 NextEntryOffset 字段包含清單中下一個配額專案的位移,以位元組為單位。 如果目前項目之後沒有其他專案,則此成員為零。

[in] SidListLength

如果指定 SID 清單的位元組長度。 則為 。

[in, optional] StartSid

要開始掃描配額資訊之專案的 SID 選擇性指標。 如果傳回的資訊是以第一個 SID 以外的項目開頭,則應該設定這個參數。 如果指定 SidList 參數,則會忽略此參數。

[in] RestartScan

布爾值,指出是否要從頭重新啟動配額信息的掃描。 如果配額資訊的掃描是從磁碟區配額資訊清單中的第一個項目開始,請將此參數設定為 TRUE 。 如果從先前呼叫 ZwQueryQuotaInformationFile 繼續掃描,請將 設定為 FALSE。 第一次呼叫 ZwQueryQuotaInformationFile 時,呼叫端必須將此參數設定為 TRUE

傳回值

如果 Buffer 參數中至少傳回一個FILE_QUOTA_INFORMATION結構或適當的 NTSTATUS 值,ZwQueryQuotaInformationFile 例程會傳回STATUS_SUCCESS,例如下列其中一項:

傳回碼 Description
STATUS_INSUFFICIENT_RESOURCES 資源不足,無法完成作業。 這是錯誤碼。
STATUS_INVALID_DEVICE_REQUEST 磁碟區上未啟用配額。 這是錯誤碼。
STATUS_INVALID_SID StartSid 參數未包含有效的 SID。 這是錯誤碼。
STATUS_QUOTA_LIST_INCONSISTENT SidList 參數未包含有效的格式正確清單。 這是錯誤碼。

備註

ZwQueryQuotaInformationFile 所傳回的資訊量是根據與磁碟區相關聯的配額資訊大小、緩衝區的大小,以及是否已要求一組特定的專案。

呼叫 ZwQueryQuotaInformationFile 會導致 IRP_MJ_SET_QUOTA 要求傳送至與 FileHandle 參數中儲存其句柄的檔案對象相關聯的裝置物件。

如果基礎文件系統不支援 FAT 和 CDFS 檔案系統 (配額資訊,例如 ) ,ZwQueryQuotaInformationFile 會失敗傳回STATUS_INVALID_DEVICE_REQUEST。

注意

如果使用者模式中發生 ZwQueryQuotaInformationFile 函式的呼叫,您應該使用名稱 “NtQueryQuotaInformationFile”,而不是 “ZwQueryQuotaInformationFile”。

針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxxZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本

規格需求

需求
最低支援的用戶端 Windows 7
目標平台 Universal
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

FILE_GET_QUOTA_INFORMATION

FILE_QUOTA_INFORMATION

IO_STATUS_BLOCK

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA

IoCheckQuotaBufferValidity

使用 Nt 和 Zw 版本的原生系統服務例程

ZwSetQuotaInformationFile