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 的值必須大於零,而且必須落在ULONG界限上。

此外, IoCheckQuotaBufferValidity 會 檢查配額緩衝區,以確保符合下列條件:

  • 緩衝區必須對齊 ULONG。

  • 在 QuotaLength 中傳遞的長度符合緩衝區的實際長度。

  • 實際的緩衝區長度為非負值。

若要有效,配額緩衝區必須符合所有這些條件。

規格需求

需求
最低支援的用戶端 Windows 2000
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另請參閱

FILE_QUOTA_INFORMATION

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA