NtSetQuotaInformationFile 函式 (ntifs.h)
NtSetQuotaInformationFile 例程會變更與 FileHandle 參數相關聯之磁碟區的配額專案。 指定緩衝區中的所有配額項目都會套用至磁碟區。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetQuotaInformationFile(
[in] HANDLE FileHandle,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PVOID Buffer,
[in] ULONG Length
);
參數
[in] FileHandle
檔案物件的句柄,表示要修改配額信息的檔案或磁碟區。
[out] IoStatusBlock
呼叫端 I/O 狀態區塊的位址。
[in] Buffer
緩衝區,包含應該套用至磁碟區的新配額專案。 配額信息必須格式化為一或多個 FILE_QUOTA_INFORMATION 結構。 FILE_QUOTA_INFORMATION 結構中的 NextEntryOffset 字段包含清單中下一個配額專案的位移,以位元組為單位。 如果目前項目之後沒有其他專案,則此成員為零。
[in] Length
緩衝區的位元組長度。
傳回值
NtSetQuotaInformationFile 例程會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法完成作業。 這是錯誤碼。 |
STATUS_INVALID_DEVICE_REQUEST | 磁碟區上未啟用配額。 這是錯誤碼。 |
STATUS_MEDIA_WRITE_PROTECTED | 磁碟區是唯讀的。 這是錯誤碼。 |
備註
NtSetQuotaInformationFile 例程會將指定 Buffer 參數中的所有配額專案套用至磁碟區。
IoCheckQuotaBufferValidity 函式可以檢查傳遞為 Buffer 參數的指定配額緩衝區是否有效。
呼叫 NtSetQuotaInformationFile 會導致 將IRP_MJ_SET_QUOTA 要求傳送至與 FileHandle 參數中儲存其句柄的檔案對象相關聯的裝置物件。
如果基礎文件系統不支援 FAT 和 CDFS 檔案系統 (配額資訊,例如 ) ,NtSetQuotaInformationFile 將會失敗傳回STATUS_INVALID_DEVICE_REQUEST。
注意
如果 對 NtSetQuotaInformationFile 函式的呼叫發生在核心模式中,您應該使用名稱 “[ZwSetQuotaInformationFile] (nf-ntifs-zwsetquotainformationfile.md”,而不是 “NtSetQuotaInformationFile”。
對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxx 和 ZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 |
目標平台 | Universal |
標頭 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS、 PowerIrpDDis |