IRP_MJ_SET_EA (драйверы FS и фильтров)
При отправке
Диспетчер ввода-вывода отправляет IRP_MJ_SET_EA запрос на настройку расширенных атрибутов файла.
Операция: драйверы файловой системы
Если файловая система поддерживает расширенные атрибуты, драйвер файловой системы должен обработать запрос и завершить IRP. В противном случае драйвер файловой системы должен вернуть STATUS_EAS_NOT_SUPPORTED.
Операция: устаревшие драйверы фильтров файловой системы
Драйвер фильтра должен передать этот IRP в следующий нижний драйвер в стеке.
Параметры
Файловая система или драйвер фильтра вызывает IoGetCurrentIrpStackLocation для заданного IRP, чтобы получить указатель на собственное расположение стека в IRP. В следующих параметрах Irp указывает на IRP , а IrpSp — на IO_STACK_LOCATION. Драйвер может использовать сведения, заданные в следующих элементах IRP и расположении стека IRP для обработки запроса набора расширенных атрибутов:
DeviceObject — это указатель на целевой объект устройства.
Irp->AssociatedIrp.SystemBuffer указывает на предоставленный системой входной буфер, который содержит сведения о расширенных атрибутах, которые необходимо задать. Используется для METHOD_BUFFERED ввода-вывода.
Irp->IoStatus указывает на структуру IO_STATUS_BLOCK , которая получает окончательное состояние завершения и сведения о запрошенной операции.
Irp->MdlAddress — это адрес списка дескрипторов памяти (MDL), описывающего входной буфер, получающий расширенные сведения об атрибуте. Используется для METHOD_DIRECT ввода-вывода.
Irp->UserBuffer указывает на предоставленный вызывающим FILE_FULL_EA_INFORMATION структурированный входной буфер, который получает расширенные сведения об атрибуте. Используется для METHOD_NEITHER ввода-вывода.
IrpSp->FileObject указывает на объект файла, связанный с DeviceObject.
Параметр IrpSp-FileObject> содержит указатель на поле RelatedFileObject, которое также является FILE_OBJECT структурой. Поле RelatedFileObject структуры FILE_OBJECT недопустимо во время обработки IRP_MJ_SET_EA и не должно использоваться.
IrpSp->MajorFunction имеет значение IRP_MJ_SET_EA.
IrpSp->Parameters.SetEa.Length — это длина входного буфера в байтах.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по