IRP_MJ_SET_QUOTA (драйверы FS и фильтров)
При отправке
Диспетчер ввода-вывода отправляет запрос IRP_MJ_SET_QUOTA. Его можно отправить, например, если приложение пользовательского режима вызывает метод Win32, например IDiskQuotaControl::SetQuotaState.
Операция: драйверы файловой системы
IRP_MJ_SET_QUOTA и IRP_MJ_QUERY_QUOTA существовали в Windows NT 4.0, но не использовались в файловой системе. В системах Windows 2000 и более поздних версий они используются для поддержки квот дисков в NTFS. Поддержка этих irP в новых файловой системах является необязательной.
Операция: устаревшие драйверы фильтров файловой системы
Драйвер фильтра должен передать этот IRP в следующий драйвер в стеке, если ему не нужно явно переопределить поведение квоты.
Параметры
Драйвер файловой системы или фильтра вызывает IoGetCurrentIrpStackLocation для заданного IRP, чтобы получить указатель на собственное расположение стека в IRP. В следующих параметрах Irp указывает на IRP , а IrpSp — на IO_STACK_LOCATION. Драйвер может использовать сведения, заданные в следующих элементах IRP и расположении стека IRP, для обработки запроса сведений о заданной квоте:
DeviceObject — это указатель на целевой объект устройства.
DeviceObject->Флаги . Если установлен флаг DO_BUFFERED_IO, вызывающий объект запросил METHOD_BUFFERED ввода-вывода. В противном случае вызывающий объект запросил METHOD_NEITHER ввода-вывода.
Irp->AssociatedIrp.SystemBuffer указывает на предоставленный системой буфер, который будет использоваться в качестве промежуточного системного буфера, если флаг DO_BUFFERED_IO установлен в DeviceObject-Flags>. В противном случае этому элементу присваивается значение NULL.
Irp->IoStatus указывает на структуру IO_STATUS_BLOCK , которая получает окончательное состояние завершения и сведения о запрошенной операции.
Irp->UserBuffer указывает на предоставленный вызывающим объектом буфер, содержащий записи квоты, которые необходимо добавить или изменить для тома.
IrpSp->FileObject указывает на объект файла, связанный с DeviceObject.
Параметр IrpSp-FileObject> содержит указатель на поле RelatedFileObject, которое также является FILE_OBJECT структурой. Поле RelatedFileObject структуры FILE_OBJECT недопустимо во время обработки IRP_MJ_SET_QUOTA и не должно использоваться.
IrpSp->MajorFunction имеет значение IRP_MJ_SET_QUOTA.
IrpSp->Parameters.SetQuota.Length — это длина (в байтах) буфера, на который указывает Irp-UserBuffer>.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по