IT News: Автоматизация процессов SOC: поговорим об IRP

IT NewsНовости рынкаБезопасность

| 22.10.2018


Любая современная компания, независимо от отрасли, представляет собой систему взаимосвязанных процессов, которые позволяют контролировать промежуточные показатели и принимать управленческие
решения. Все подразделения компании должны быть охвачены процессной моделью, и абсолютно точно процессный подход должен применяться в подразделениях кибербезопасности
.

В 2017 году в ходе трансформации Security Operation Center (SOC) Сбербанка была внедрена процессная модель в обеспечении кибербезопасности банка. Сегодня мы работаем над ее совершенствованием и
развитием. Следующий шаг ― автоматизация в первую очередь основных процессов, связанных с реагированием.

Развитие SOC в Сбербанке

SOC Сбербанка развивается, к SIEM-системе подключается всё большее количество источников данных. Мы разрабатываем сложные сценарии реализации угроз кибербезопасности (use case), по которым
создаются инциденты. Во втором квартале 2018 года SIEM Сбербанка обработала 280 млрд событий из различных источников ― в среднем 3,1 млрд в сутки. В результате корреляции событий на обработку
аналитикам поступило 9213 подозрений на инцидент, из которых 3810 представляли реальную угрозу.

Каждое подозрение на инцидент требует обработки аналитиками линий реагирования в соответствии с заранее разработанными инструкциями (playbooks). При этом необходимо выдержать ряд критичных метрик.
Например, время взятия в работу инцидента в SOC Сбербанка не может превышать пяти минут. Как обеспечить необходимую скорость реагирования при таком количестве инцидентов, возникающих в крупной и
территориально распределенной инфраструктуре Сбербанка? Это возможно только при наличии эффективной и производительной технологической платформы SOC.

SIEM-система получает события от источников, проводит их нормализацию, выявляет подозрительную активность, используя корреляционные правила. Подозрительные события поступают в ticketing-систему,
где с ними работают аналитики SOC. При этом по каждому подозрительному событию проводится проверка на корректность: аналитик первой линии проверяет, не является ли оно ложным (false positive). На
следующих линиях реагирования проводится категорирование: инциденту присваивается уровень критичности, выполняются действия по локализации, уничтожению угрозы и восстановлению нормальной работы.

Для выполнения этих действий сотрудникам каждой линии реагирования необходимо пользоваться дополнительными инструментами, входить в консоли средств защиты, получать дополнительную информацию из
других АС и инфраструктурных элементов, число которых может составлять десятки и даже сотни единиц. При этом аналитик должен иметь необходимый уровень доступа ко всем этим элементам и уметь
свободно их использовать.

У данной схемы есть и недостатки. К ним относятся длительное время решения инцидентов и риск возникновения ошибок, связанных с человеческим фактором ― ошибочными действиями аналитиков.

Автоматизация процесса поможет решить эти проблемы. Технологической платформе SOC необходим отдельный узел или компонент для управления действиями, которые требуется выполнять на средствах защиты,
автоматизированных системах и инфраструктурном оборудовании.

Автоматизация процессов кибербезопасности

В целом тема автоматизации и роботизации процессов ― одна из самых обсуждаемых в профессиональном сообществе. В Сбербанке и других организациях есть успешные кейсы применения роботизации и
автоматизации процессов в различных областях. Для автоматизации процессов кибербезопасности существует отдельный класс систем – Incident Response Platform (IRP), платформа реагирования на
инциденты.

На рынке IRP-систем представлено несколько решений, среди них есть разработки и российских компаний. Этот сегмент достаточно молодой, решения довольно сильно отличаются в части реализуемого
функционала. Помимо собственно оркестрации и функционала workload automation, интерес вызывают возможности интеграции c внешней ticketing-системой и другими элементами технологической платформы.
Это даст возможность реализовать интеграцию, позволяющую использовать уже внедренную ticketing-систему SOC. Аналитики смогут работать в едином интерфейсе управления инцидентами, при этом действия,
которые можно автоматизировать, будут выполняться через запрос из ticketing-системы в IRP, а результат их выполнения поступает обратно в ticketing-систему.

Функционал IRP

Рабочий процесс ― алгоритм, реализующий автоматизированную часть дежурной процедуры. Он имеет графическое представление в интерфейсе IRP, состоит из скриптов, переменных, хранящих результаты
выполнения скриптов, и логических условий, реализующих переходы и ветвление в рамках рабочего процесса. Рабочий процесс может содержать неограниченное количество вложенных рабочих процессов.

Коннектор ― модуль IRP, обеспечивающий подключение к конечным системам по заданным протоколам взаимодействия с указанием необходимых параметров и выполнение скриптов для внесения изменений в
конфигурации и настройки конечных систем.

Скрипт ― набор команд, выполняемых для совершения типовой операции, например блокирования учетной записи пользователя или закрытия порта.

Настройка всех подключений происходит внутри IRP через настройку соответствующих коннекторов. Скрипты и рабочие процессы настраиваются здесь же. Для аналитиков SOC IRP выступает как внешний сервис,
в который передаются входные параметры из карточки события ticketing-системы и возвращаются результаты выполнения скрипта, в том числе обогащенные данные. В итоге аналитики избавляются от
необходимости вручную собирать информацию, требуемую для принятия решения, и получают возможность быстро выполнить то или иное действие в инфраструктуре: например, блокировку пользователя,
отключение АРМ от сети прямо из интерфейса ticketing-системы. Это позволяет значительно повысить скорость решения инцидентов и, как следствие, снизить возможное влияние инцидентов кибербезопасности
на работу банка, исключить возможные ошибки сотрудников.

Подобная система должна обладать достаточным уровнем гибкости ― специалистам необходимо иметь возможность самостоятельно изменять настройки коннекторов, а также создавать новые коннекторы без
привлечения вендора. В требования к системе входит наличие конструктора рабочих процессов, позволяющего в графическом режиме строить такие процессы и связывать их с исполняемыми скриптами.

Стоит учесть, что платформа реагирования на инциденты кибербезопасности сама может стать объектом атаки. Получив несанкционированный доступ к системе, перехватив управляющий трафик между
компонентами системы, злоумышленник может нанести значительный урон ИТ-инфраструктуре. Поэтому к системе предъявляются очень серьезные требования безопасности: к хранению аутентификационной
информации, ролевой модели, защищенному соединению между компонентами, логированию действий сотрудников и журналированию команд, отправляемых скриптами.

Внедрение IRP ― это серьезный шаг в развитии SOC. Он необходим, чтобы обеспечить эффективное реагирование на инциденты кибербезопасности. SOC Сбербанка достиг уровня зрелости, предполагающего
автоматизацию процессов реагирования на инциденты кибербезопасности. Сейчас Сбербанк проводит открытый конкурс по выбору и внедрению платформы реагирования на инциденты кибербезопасности в SOC.
Сегодня на рынке присутствуют компании, в том числе и российские, способные предложить IRP-решения, отвечающие высоким требованиям безопасности Сбербанка. До конца 2018 года мы рассчитываем выбрать
и внедрить IRP-систему.

Александр БОНДАРЕНКО,

руководитель направления отдела средств защиты Сбербанка

Ключевые слова: информационная безопасность

Журнал: Журнал IT-News [№ 11/2018], Подписка на журналы

www.it-world.ru

Структура пакета запроса ввода/вывода (IRP) | Общая архитектура Windows NT | Статьи | Программирование Realcoding.Net

При осуществлении операции ввода/вывода диспетчер
ввода/вывода создает специальный пакет, описывающий эту операцию —
пакет запроса ввода/вывода (I/O Request Packet,
IRP). Как будет показано ниже, обработка такого пакета может происходить
поэтапно несколькими объектами-устройствами.
IRP содержит всю необходимую информацию для полного описания запроса Ввода —
вывода Диспетчеру Ввода/вывода и драйверам устройств. IRP описывается
стандартной структурой типа «IRP», показанной на рис. 10.

Структура IRP специально разработана для поддержки многоуровневой модели
ввода/вывода, при которой запрос ввода/вывода последовательно обрабатывается
стеком из нескольких драйверов.
Для обеспечения этого каждый пакет запроса ввода/вывода состоит из двух частей:
«фиксированной» части и Стека
Ввода/вывода. Фиксированная часть IRP
содержит информацию относительно той части запроса, которая или не изменяется от
драйвера к драйверу, или которую не надо сохранять при передаче IRP от одного
драйвера к другому. Стек Ввода/вывода содержит набор
Стеков Размещения Ввода/вывода, каждый из которых
содержит информацию, специфическую для каждого драйвера, который может
обрабатывать запрос.
В стеке размещения ввода/вывода для каждого устройства,, которое должно
принимать участие в обработке пакета, содержатся указатели на объект-устройство,
которое будет обрабатывать запрос, и на объект-файл, для которого была
инициирована операция ввода/вывода (см. рис. 10).
Пакеты IRP всегда выделяются из невыгружаемой системной памяти (nonpaged pool),
поэтому к ним может осуществляться обращение из функций, работающих на любом
уровне IRQL.
Как уже говорилось, драйверы подразделяются на три класса по их положению в
стеке драйверов: драйверы высшего уровня, драйверы промежуточного уровня и
драйверы низшего уровня.
Драйвер высшего уровня — это верхний драйвер в стеке драйверов, получающий
запросы через Диспетчер ввода/вывода от компонентов прикладного уровня.
Драйвер высшего уровня (или, что более правильно, устройство высшего уровня)
имеет один или несколько стеков размещения ввода/вывода.
Число стеков размещения ввода/вывода устанавливается Диспетчером ввода/вывода в
поле StackSize объекта-устройства. По умолчанию это значение равно 1.
Присваивание происходит при создании устройства функцией IoCreateDevice(). Если
вы создаёте многоуровневый драйвер, вы должны установить StackSize на 1 больше,
чем StackSize объекта-устройства, над которым будете размещать свое устройство.
В случае, если ваше устройство будет использовать больше одного устройства
уровнем ниже, поле StackSize этого устройства должно быть на 1 больше
максимального значения StackSize из всех устройств уровнем ниже.

Рис. 10

Поля в фиксированной части IRP

Как было уже сказано, фиксированная часть IRP содержит
информацию, которая или не изменяется от драйвера к драйверу или не должна
сохраняться, когда IRP передается от одного драйвера к другому. Особенно
интересными или полезными поля в фиксированной части IRP являются следующие:

  1. 1. MdlAddress. Это поле
    указывает на Таблицу Описания Памяти (MDL), которая описывает буфер запроса,
    когда драйвер использует Прямой ввода/вывода (Direct I/O — представлен далее
    в этом разделе).
  2. 2. Flags. Как подразумевает
    название, это поле содержит флаги, которые (обычно) описывают запрос
    ввода/вывода. Например, если в этом поле установлен флаг IRP_PAGING_IO, это
    указывает на то, что операция чтения или операция записи, описанная IRP,
    есть страничный запрос. Точно так же бит IRP_NOCACHE указывает, что запрос
    должен быть обработан без промежуточной буферизации. Поле Flags обычно
    представляют интерес только для файловых систем.
  3. 3. Associatedlrp.Masterlrp. В
    связанном (associated) IRP это указатель на главный (master) IRP, с которым
    связан этот запрос. Это поле представляет интерес только драйверам верхнего
    уровня, типа драйверов файловых систем.
  4. 4. Associatedlrp.SystemBuffer.
    Это место указывает на промежуточный буфер в невыгружаемой памяти,
    содержащий данных запроса в случае, когда драйвер исполь-йзует
    буферизированный ввод/вывод (Buffered I/O).
  5. 5. loStatus. Это Блок Состояния
    Ввода/вывода, который описывает состояние завершения обработки IRP. Когда
    IRP завершен, драйвер помещает в поле loStatus.Status Состояние завершения
    операции ввода/вывода, а в поле loStatus.Information — любую дополнительную
    информацию, которую нужно передать обратно инициатору запроса 1
    ввода/вывода. Как правило, поле loStatus.Information содержит фактическое
    число , байтов, прочитанных или записанных запросом передачи данных.
  6. 6. Requestor Mode. Это поле
    указывает режим работы процессора (режим ядра или пользовательский режим),
    из которого был инициирован запрос ввода/вывода.
  7. 7. Cancel, Cancellrql и CancelRoutine.
    Эти поля используются, если IRP может гбыть отменен в процессе обработки.
    Cancel — поле типа BOOLEAN, значение которого устанавливается Диспетчером
    ввода/вывода. Установка в TRUE указывает, что была запрошена отмена операции
    ввода/вывода, описанная этим IRP. CancelRoutine — это указатель на функцию
    драйвера (точка входа драйвера), вызываемую Диспетчером Ввода/вывода для
    того, чтобы драйвер мог корректно отменить IRP. Точка входа CancelRoutine
    вызывается на IRQL DISPATCH_LEVEL, Cancellrql является тем уровнем IRQL, к
    которому драйвер должен возвратиться. Более подробно обработка отмены
    запроса ввода/вывода будет обсуждаться в разделе, посвященном сериализации.
  8. 8. UserBuffer. Это поле содержит
    виртуальный адрес буфера данных инициатора запроса, связанного с запросом
    Ввода/вывода, если такой буфер имеется.
  9. 9. Tail.Overlay.DeviceQueueEntry.
    Это поле используется Диспетчером Ввода/вывода для постановки IRP в
    очередь в случае использования системной очереди (System > Queuing).
    Системная очередь будет обсуждаться в разделе, посвященном сериализации.
  10. 10. Tail.Overlay.Thread. Это
    поле является указателем на управляющий блок по-; тока инициатора запроса
    (ETHREAD).
  11. 11. TailOverlay.ListEntry. Когда
    драйвер сам создал IRP, он может использовать это поле для соединения одного
    IRP с другим.

Поля в стеке размещения ввода/вывода IRP

Каждый Стек размещения Ввода/вывода в IRP содержит информацию
для конкретного драйвера относительно запроса Ввода/вывода. Стек размещения
Ввода/вывода определяется структурой IO_STACK_LOCATION. Для определения
местонахождения текущего Стека Размещения Ввода/вывода внутри данного IRP,
драйвер должен использовать функцию loGetCurrentlrp StackLocationQ. Единственным
параметром при вызове является указатель на IRP. Возвращаемым значением будет
указатель на текущий Стек размещения Ввода/вывода. Когда Диспетчер Ввода/вывода
создает IRP и инициализирует его фиксированную часть, он также инициализирует в
IRP первый Стек Размещения Ввода/вывода. В него помещается информация, которую
нужно передать первому драйверу в стеке драйверов, которые будут обрабатывать
этот запрос. Поля в Стеке Размещения Ввода/вывода включают следующее:

  1. 1. MajorFunction. Это поле
    указывает главный код функции ввода/вывода, связанный с запросом
    ввода/вывода. Тем самым указывается тип операции ввода/вывода, которая
    должна быть выполнена.
    2. MinorFunction. Это поле указывает
    второстепенный код функции ввода/вывода, связанный с запросом. При
    использовании, это поле переопределяет главный функциональный код.
    Второстепенные функции используются почти исключительно сетевыми
    транспортными драйверами и файловыми системами и игнорируются большинством
    драйверов устройств.
    3. Flags. Это поле содержит флаги обработки,
    определенные для выполняемой функции ввода/вывода. Это поле представляет
    интерес главным образом для драйверов файловых систем.
    4. Control. Это поле является набором флагов,
    которые устанавливаются и читаются Диспетчером Ввода/вывода, указывая, как
    надо обработать данный пакет IRP. Например, в этом поле с помощью обращения
    драйвера к функции loMarklrpPendingO может быть установлен бит SL_PENDING,
    указьшающий Диспетчеру Ввода/вывода, что завершение обработки пакета ШР
    отложено на неопределенное время. Точно так же флажки SL_INVOKE_ ON_CANCEL,
    SL_INVOKE_ON_ERROR и SL_INVOKE_ON_SUCCESS указывают, когда для этого должна
    быть вызвана Подпрограмма Завершения Ввода/вывода драйвера.
    5. Parameters. Это поле включает несколько
    подполей, каждое из которых зависит от главной функции Ввода — вывода,
    которая будет выполняться.
    6. DeviceObject. Это поле содержит указатель на
    объект-устройство, который является получателем запроса Ввода/вывода.
    7. FileObject. Это поле содержит указатель на
    объект-файл, связанный с запросом Ввода/вывода.

После того, как фиксированная часть IRP и первый Стек
размещения Ввода/вывода в IRP инициализированы, Диспетчер Ввода/вывода вызывает
верхний драйвер в стеке драйверов в его точке входа dispatch, которая
соответствует главному функциональному коду для запроса. Таким образом, если
Диспетчер Ввода/вывода сформировал IRP для описания запроса чтения, он вызовет
первый драйвер в стеке драйверов в его диспетчерской точке входа для чтения
(IRP_MJ_READ). При этом Диспетчер Ввода/вывода передает следующие параметры:

  • указатель на IRP, который был только что сформирован;
  • указатель на обьект-устройство, который соответствует
    устройству, для которого драйвер должен обработать запрос.

www.realcoding.net

irp — Английский-Русский Словарь — Glosbe

en At the global level, FAO in # started an interregional programme to support activities relating to the implementation of the Code (IRP-CCRF), with Norwegian funding for two subprogrammes: MCS and assistance in improving the provision of scientific advice for fishery management

MultiUnru Ну же, Энни, давай

en Among the clients of IRP Technology are organizations working in the sphere of finance like NG Bank and Deutsche UFG, such power plants as Rosenergoatom , such government organizations as Russian Ministry of Economic Development and Trade and Ministry of Defense.

Common crawlru Нет сигнала

en Russia favors increasing constructive cooperation with Pakistan and welcomes the active stance taken by the IRP after the granting to it of observer status in the Shanghai Cooperation Organization.

mid.ruru Я слышу, что ты говоришь

en The status of IRP is valid for five years and provides access to benefits such as housing loans

MultiUnru Кто- нибудь ранен?

en [further requests the Executive Director, within the programme of work, to contribute to the dissemination and outreach of the findings of relevant bodies, inter alia, IPCC, IPBES and IRP in order to amplify diffusion among policy-makers and the public to the maximum possible extent;]

UN-2ru Харди так ныла, что заставила меня прочитать несколько рассказов мистера Долинга

en · IRPS; and

UN-2ru Как будто отстали

en Welcoming also the continued support provided by UNEP to the work of the scientific panels [such as the IPCC [and] IPBES [and UNSCEAR] [, [inter-governmental ones and IRP]],

UN-2ru И потом, у меня есть фотография, на которой она в # году, а её сын в униформе # года

en Its activities have been taking regional and national dimensions designed to create national platforms, service regional networks and platforms, promote early warning and prevention, and strengthen resilience supportive of recovery through IRP

MultiUnru Ну, хорошо, хорошо

en Bland generalities or over-optimistic assessments will be of little value to the investor community, and would diminish the use they made of the IRP when making investment decisions (para

MultiUnru Нет!Нет, она выживет!

en Having regard to the statement of the elected president of the Islamic Republic of Iran Hassan Rouhani about readiness of Teheran to be more open in IRP issues, we hope that these intents will be implemented in practice in the nearest time.

mid.ruru Дайте мне оружие, Полковник

en Its activities have been taking regional and national dimensions designed to create national platforms, service regional networks and platforms, promote early warning and prevention, and strengthen resilience supportive of recovery through IRP.

UN-2ru Оставайтесь вместе, забудьте ссоры, пестуйте дружбу

en This was to encourage debtor country Governments to open or strengthen “investor relations programmes” (IRPs

MultiUnru Имперские Кулаки

en The migration services are not entertaining applications for IRP status by persons of Chechen ethnicity displaced by the current conflict

MultiUnru Кто- то покойничка в неё обрядил.Думал, схороним

en Thematic inputs to the global report taken from the UNEP programme of work and external sources, including: Global Biodiversity Outlook; Global Gender and Environment Outlook; Global Waste Management Outlook; Global Chemicals Outlook; assessments of IPCC, the Intergovernmental Science-Policy Platform on Biodiversity and Ecosystem Services and IRP; World Oceans Assessment; protected areas monitoring coverage; adaptations gap pilot report; emissions gap; World Water Quality Assessment; regional black carbon assessments; global transboundary waters assessment of five water systems; global assessment report on disaster risk reduction.

UN-2ru Тот человек, чье имя вы должны назвать, теперь убил и Гонзу

en Within the United Nations, UNOSAT is part of the International Recovery Platform (IRP) and the Global Disaster Alert System (GDAS).

UN-2ru Я не виню тебя за это

en The Hyogo Framework provides Member States with an integrated framework to address these problems through maintaining, among other things, hazard maps and baseline assessments of the status of disaster reduction containing realistic and measurable indicators, and implementing the International Recovery Platform (IRP), an inter-agency mechanism for establishing disaster assessments from the inception of emergencies and assisting the national platforms in designing plans of recovery and investment built upon early warning systems and risk assessment capacities

MultiUnru Это- коралловый

en c) Involuntarily Relocating Persons (IRPs

MultiUnru Разберись со своим чертовым экспертом

en In # the IRP status expired for some # persons and this caseload is expected to decrease as IRPs integrate socially and economically into their new places of residence

MultiUnru Если ты любишь ее, и сожалеешь, то она будет это знать, чувак

en in cooperation with federal and regional authorities, to forge essential linkages between the various beneficiary groups, especially between refugees and Involuntarily Relocating Persons (IRPs), by strengthening the capacity of NGOs to provide social/legal assistance to these groups

MultiUnru Абсолютно безупречно

en per cent of IRPs are female; children under # years of age constitute # per cent; person of # years and above represent # per cent

MultiUnru Просто будем спокойными, хорошо?

en At the global level, FAO in 1998 started an interregional programme to support activities relating to the implementation of the Code (IRP-CCRF), with Norwegian funding for two subprogrammes: MCS and assistance in improving the provision of scientific advice for fishery management.

UN-2ru Свою первую звезду…… я бросил в океан

en This was to encourage debtor country Governments to open or strengthen “investor relations programmes” (IRPs).

UN-2ru Это что- то новенькое

en IRP Technology, a large-scale system integrator and SearchInform Technologies, a developer of corporate search solutions, announce a partnership agreement, based on which IRP Technology receives the right to use SearchInform search technologies in any of its projects.

Common crawlru Девушкам бесплатно, так что приводи каких- нибудь цыпочек, окей?

en As of # arch # there were # recognized IRPs in the Russian Federation who mainly originate from Kazakhstan, Uzbekistan, Tajikistan, and the Baltic States

MultiUnru Нет, я на мотоцикле, так что я их запросто проскакиваю

en In this context, the support, commitment, and active involvement of high-level sovereign policy makers is the sine qua non of an effective IRP by countries (para

MultiUnru Он изводит их и находит себе девушку посвежее

ru.glosbe.com

Структура пакета запроса ввода/вывода (IRP) | Общая архитектура Windows NT | Статьи | Программирование Realcoding.Net

При осуществлении операции ввода/вывода диспетчер
ввода/вывода создает специальный пакет, описывающий эту операцию —
пакет запроса ввода/вывода (I/O Request Packet,
IRP). Как будет показано ниже, обработка такого пакета может происходить
поэтапно несколькими объектами-устройствами.
IRP содержит всю необходимую информацию для полного описания запроса Ввода —
вывода Диспетчеру Ввода/вывода и драйверам устройств. IRP описывается
стандартной структурой типа «IRP», показанной на рис. 10.

Структура IRP специально разработана для поддержки многоуровневой модели
ввода/вывода, при которой запрос ввода/вывода последовательно обрабатывается
стеком из нескольких драйверов.
Для обеспечения этого каждый пакет запроса ввода/вывода состоит из двух частей:
«фиксированной» части и Стека
Ввода/вывода. Фиксированная часть IRP
содержит информацию относительно той части запроса, которая или не изменяется от
драйвера к драйверу, или которую не надо сохранять при передаче IRP от одного
драйвера к другому. Стек Ввода/вывода содержит набор
Стеков Размещения Ввода/вывода, каждый из которых
содержит информацию, специфическую для каждого драйвера, который может
обрабатывать запрос.
В стеке размещения ввода/вывода для каждого устройства,, которое должно
принимать участие в обработке пакета, содержатся указатели на объект-устройство,
которое будет обрабатывать запрос, и на объект-файл, для которого была
инициирована операция ввода/вывода (см. рис. 10).
Пакеты IRP всегда выделяются из невыгружаемой системной памяти (nonpaged pool),
поэтому к ним может осуществляться обращение из функций, работающих на любом
уровне IRQL.
Как уже говорилось, драйверы подразделяются на три класса по их положению в
стеке драйверов: драйверы высшего уровня, драйверы промежуточного уровня и
драйверы низшего уровня.
Драйвер высшего уровня — это верхний драйвер в стеке драйверов, получающий
запросы через Диспетчер ввода/вывода от компонентов прикладного уровня.
Драйвер высшего уровня (или, что более правильно, устройство высшего уровня)
имеет один или несколько стеков размещения ввода/вывода.
Число стеков размещения ввода/вывода устанавливается Диспетчером ввода/вывода в
поле StackSize объекта-устройства. По умолчанию это значение равно 1.
Присваивание происходит при создании устройства функцией IoCreateDevice(). Если
вы создаёте многоуровневый драйвер, вы должны установить StackSize на 1 больше,
чем StackSize объекта-устройства, над которым будете размещать свое устройство.
В случае, если ваше устройство будет использовать больше одного устройства
уровнем ниже, поле StackSize этого устройства должно быть на 1 больше
максимального значения StackSize из всех устройств уровнем ниже.

Рис. 10

Поля в фиксированной части IRP

Как было уже сказано, фиксированная часть IRP содержит
информацию, которая или не изменяется от драйвера к драйверу или не должна
сохраняться, когда IRP передается от одного драйвера к другому. Особенно
интересными или полезными поля в фиксированной части IRP являются следующие:

  1. 1. MdlAddress. Это поле
    указывает на Таблицу Описания Памяти (MDL), которая описывает буфер запроса,
    когда драйвер использует Прямой ввода/вывода (Direct I/O — представлен далее
    в этом разделе).
  2. 2. Flags. Как подразумевает
    название, это поле содержит флаги, которые (обычно) описывают запрос
    ввода/вывода. Например, если в этом поле установлен флаг IRP_PAGING_IO, это
    указывает на то, что операция чтения или операция записи, описанная IRP,
    есть страничный запрос. Точно так же бит IRP_NOCACHE указывает, что запрос
    должен быть обработан без промежуточной буферизации. Поле Flags обычно
    представляют интерес только для файловых систем.
  3. 3. Associatedlrp.Masterlrp. В
    связанном (associated) IRP это указатель на главный (master) IRP, с которым
    связан этот запрос. Это поле представляет интерес только драйверам верхнего
    уровня, типа драйверов файловых систем.
  4. 4. Associatedlrp.SystemBuffer.
    Это место указывает на промежуточный буфер в невыгружаемой памяти,
    содержащий данных запроса в случае, когда драйвер исполь-йзует
    буферизированный ввод/вывод (Buffered I/O).
  5. 5. loStatus. Это Блок Состояния
    Ввода/вывода, который описывает состояние завершения обработки IRP. Когда
    IRP завершен, драйвер помещает в поле loStatus.Status Состояние завершения
    операции ввода/вывода, а в поле loStatus.Information — любую дополнительную
    информацию, которую нужно передать обратно инициатору запроса 1
    ввода/вывода. Как правило, поле loStatus.Information содержит фактическое
    число , байтов, прочитанных или записанных запросом передачи данных.
  6. 6. Requestor Mode. Это поле
    указывает режим работы процессора (режим ядра или пользовательский режим),
    из которого был инициирован запрос ввода/вывода.
  7. 7. Cancel, Cancellrql и CancelRoutine.
    Эти поля используются, если IRP может гбыть отменен в процессе обработки.
    Cancel — поле типа BOOLEAN, значение которого устанавливается Диспетчером
    ввода/вывода. Установка в TRUE указывает, что была запрошена отмена операции
    ввода/вывода, описанная этим IRP. CancelRoutine — это указатель на функцию
    драйвера (точка входа драйвера), вызываемую Диспетчером Ввода/вывода для
    того, чтобы драйвер мог корректно отменить IRP. Точка входа CancelRoutine
    вызывается на IRQL DISPATCH_LEVEL, Cancellrql является тем уровнем IRQL, к
    которому драйвер должен возвратиться. Более подробно обработка отмены
    запроса ввода/вывода будет обсуждаться в разделе, посвященном сериализации.
  8. 8. UserBuffer. Это поле содержит
    виртуальный адрес буфера данных инициатора запроса, связанного с запросом
    Ввода/вывода, если такой буфер имеется.
  9. 9. Tail.Overlay.DeviceQueueEntry.
    Это поле используется Диспетчером Ввода/вывода для постановки IRP в
    очередь в случае использования системной очереди (System > Queuing).
    Системная очередь будет обсуждаться в разделе, посвященном сериализации.
  10. 10. Tail.Overlay.Thread. Это
    поле является указателем на управляющий блок по-; тока инициатора запроса
    (ETHREAD).
  11. 11. TailOverlay.ListEntry. Когда
    драйвер сам создал IRP, он может использовать это поле для соединения одного
    IRP с другим.

Поля в стеке размещения ввода/вывода IRP

Каждый Стек размещения Ввода/вывода в IRP содержит информацию
для конкретного драйвера относительно запроса Ввода/вывода. Стек размещения
Ввода/вывода определяется структурой IO_STACK_LOCATION. Для определения
местонахождения текущего Стека Размещения Ввода/вывода внутри данного IRP,
драйвер должен использовать функцию loGetCurrentlrp StackLocationQ. Единственным
параметром при вызове является указатель на IRP. Возвращаемым значением будет
указатель на текущий Стек размещения Ввода/вывода. Когда Диспетчер Ввода/вывода
создает IRP и инициализирует его фиксированную часть, он также инициализирует в
IRP первый Стек Размещения Ввода/вывода. В него помещается информация, которую
нужно передать первому драйверу в стеке драйверов, которые будут обрабатывать
этот запрос. Поля в Стеке Размещения Ввода/вывода включают следующее:

  1. 1. MajorFunction. Это поле
    указывает главный код функции ввода/вывода, связанный с запросом
    ввода/вывода. Тем самым указывается тип операции ввода/вывода, которая
    должна быть выполнена.
    2. MinorFunction. Это поле указывает
    второстепенный код функции ввода/вывода, связанный с запросом. При
    использовании, это поле переопределяет главный функциональный код.
    Второстепенные функции используются почти исключительно сетевыми
    транспортными драйверами и файловыми системами и игнорируются большинством
    драйверов устройств.
    3. Flags. Это поле содержит флаги обработки,
    определенные для выполняемой функции ввода/вывода. Это поле представляет
    интерес главным образом для драйверов файловых систем.
    4. Control. Это поле является набором флагов,
    которые устанавливаются и читаются Диспетчером Ввода/вывода, указывая, как
    надо обработать данный пакет IRP. Например, в этом поле с помощью обращения
    драйвера к функции loMarklrpPendingO может быть установлен бит SL_PENDING,
    указьшающий Диспетчеру Ввода/вывода, что завершение обработки пакета ШР
    отложено на неопределенное время. Точно так же флажки SL_INVOKE_ ON_CANCEL,
    SL_INVOKE_ON_ERROR и SL_INVOKE_ON_SUCCESS указывают, когда для этого должна
    быть вызвана Подпрограмма Завершения Ввода/вывода драйвера.
    5. Parameters. Это поле включает несколько
    подполей, каждое из которых зависит от главной функции Ввода — вывода,
    которая будет выполняться.
    6. DeviceObject. Это поле содержит указатель на
    объект-устройство, который является получателем запроса Ввода/вывода.
    7. FileObject. Это поле содержит указатель на
    объект-файл, связанный с запросом Ввода/вывода.

После того, как фиксированная часть IRP и первый Стек
размещения Ввода/вывода в IRP инициализированы, Диспетчер Ввода/вывода вызывает
верхний драйвер в стеке драйверов в его точке входа dispatch, которая
соответствует главному функциональному коду для запроса. Таким образом, если
Диспетчер Ввода/вывода сформировал IRP для описания запроса чтения, он вызовет
первый драйвер в стеке драйверов в его диспетчерской точке входа для чтения
(IRP_MJ_READ). При этом Диспетчер Ввода/вывода передает следующие параметры:

  • указатель на IRP, который был только что сформирован;
  • указатель на обьект-устройство, который соответствует
    устройству, для которого драйвер должен обработать запрос.

www.realcoding.net

[7.2.1] Поля в Фиксированной части irp.

Как было уже сказано,
фиксированная часть IRP содержит
информацию, которая или не изменяется
от драйвера к драйверу или не должна
сохраняться, когда IRP передается от
одного драйвера к другому. Особенно
интересные или полезные поля в
фиксированной части IRP являются
следующими:

  • MdlAddress.
    Это поле указывает на Таблицу Описания
    Памяти (MDL), которая описывает буфер
    запроса, когда драйвер использует
    Прямой в/в (Direct I/O
    – далее в этой лекции).

  • Flags.
    Как подразумевает название, это поле
    содержит флаги, которые (обычно) описывают
    запрос Ввода — вывода. Например, если в
    этом поле установлен флаг IRP_PAGING_IO,
    это указывает на то, что операция чтения
    или операция записи, описанная IRP, есть
    страничный запрос. Точно так же бит
    IRP_NOCACHE указывает, что запрос должен
    быть обработан без промежуточной
    буферизации. Поле Flags
    обычно представляют интерес только
    для файловых систем.

  • AssociatedIrp.MasterIrp.
    В связанном (associated) IRP,
    это указатель на главный (master) IRP, с
    которым связан этот запрос. Это поле
    представляет интерес только драйверам
    верхнего уровня, типа драйверов файловых
    систем.

  • AssociatedIrp.SystemBuffer.
    Это место указывает на промежуточный
    буфер в невыгружаемой памяти, содержащий
    данных запроса в случае, когда драйвер
    использует буферизированный Ввод –
    вывод (Buffered I/O).

  • IoStatus.
    Это Блок Состояния Ввода — вывода,
    который описывает состояние завершения
    обработки IRP. Когда IRP завершен, драйвер
    помещает в поле IoStatus.Status
    состояние завершения операции в/в, а в
    поле IoStatus.Information
    — любую дополнительную информацию,
    которую нужно передать обратно инициатору
    запроса Ввода — вывода. Как правило,
    поле IoStatus.Information
    содержит фактическое число байтов,
    прочитанных или записанных запросом
    передачи данных.

  • RequestorMode.
    Это поле указывает режим работы
    процессора (режим ядра или пользовательский
    режим), из которого был инициирован
    запрос в/в.

  • Cancel, CancelIrql и
    CancelRoutine
    .Эти поля используются,
    если IRP может быть отменен в процессе
    обработки. Cancel – поле типа BOOLEAN,
    значение которого устанавливается
    Диспетчером в/в. Установка в TRUE указывает,
    что была запрошена отмена операции
    в/в, описанной этим IRP. CancelRoutine — это
    указатель на функцию драйвера (точка
    входа драйвера), вызываемую Диспетчером
    Ввода – вывода для того, чтобы драйвер
    мог корректно отменить IRP. Точка входа
    CancelRoutine вызывается на IRQL DISPATCH_LEVEL,
    CancelIrql является тем уровнем IRQL, к которому
    драйвер должен возвратиться. Более
    подробно обработка отмены запроса в/в
    будет обсуждаться на лекции по
    сериализации.

  • UserBuffer. Это поле
    содержит виртуальный адрес буфера
    данных инициатора запроса, связанного
    с запросом Ввода — вывода, если такой
    буфер имеется.

  • Tail.Overlay.DeviceQueueEntry.
    Это поле используется Диспетчером
    Ввода — вывода для постановки IRP в очередь
    в случае использования системной
    очереди (System Queuing). Системная очередь
    будет обсуждаться на лекции по
    сериализации.

  • Tail.Overlay.Thread.
    Это поле является указателем на
    управляющий блок потока инициатора
    запроса (ETHREAD).

  • TailOverlay.ListEntry.
    Когда драйвер сам создал IRP, он может
    использовать это поле для соединения
    одного IRP с другим.

  • studfiles.net

    ИРП — это… Что такое ИРП?

    ИРП

    Институт региональной прессы

    http://www.rpinw.spb.ru/​


    образование и наука, Санкт-Петербург

    ИРП

    Институт развития прессы

    http://www.pdi.ru


    образование и наука

    ИРП

    индивидуальный рацион питания


    воен.

    ИРП

    Институт региональной политики


    г. Пенза, образование и наука, полит.

    Источник: http://www.regnum.ru/expnews/291123.html

    ИРП

    институт реставрации природы

    С. Другаль, цикл «Дела земные»


    образование и наука, худ.

    ИРП

    Иртышское речное пароходство

    ИРП

    Итальянская рабочая партия


    Италия, полит.

    ИРП

    Институт русского предпринимательства


    образование и наука

    ИРП

    истинный радиопеленг


    связь

    ИРП

    Институционно-революционная партия


    Мексика, полит.

    Словарь: С.


    Фадеев. Словарь сокращений современного русского языка. — С.-Пб.: Политехника, 1997. — 527 с.

    ИРП

    Итальянская республиканская партия


    Италия, полит.

    Словарь: С. Фадеев. Словарь сокращений современного русского языка. — С.-Пб.: Политехника, 1997. — 527 с.

    ИРП

    Интернационал работников просвещения

    ИРП

    Исламская Республика Пакистан


    Пакистан, религ.

    Словарь: С. Фадеев. Словарь сокращений современного русского языка. — С.-Пб.: Политехника, 1997. — 527 с.

    ИРП

    известерегенерационная печь

    бумажное производство

    Источник: http://www.lesprominform.ru/jarchive/articles/itemprint/2369

    ИРП

    индустриальные радиопомехи


    связь

    Источник: http://www.skonline.ru/doc/36747.html

    ИРП

    Институт радиационных проблем


    Азербайджан, образование и наука

    Источник: http://excon.minatom.ru/excon_files/slov/sl24.pdf

    ИРП

    Институционально-революционная партия


    Мексика, полит.

    Источник: http://www.expert.ru/politics/2006/07/vybory_v_meksike/

    ИРП

    Институт религии и политики

    некоммерческая организация

    http://i-r-p.ru/​


    образование и наука, организация, полит., религ.

    Источник: http://www.rian.ru/pressclub/20051013/41652470.html

    ИРП

    «Информационные ресурсы промышленности»

    ЗАО

    http://www.irp3.ru


    организация

    ИРП

    искусственный распад протона

    Источник: http://nuclearno.ru/textml.asp?9928

    ИРП

    Институт региональных проблем

    с 1994

    http://www.irpr.ru/​


    образование и наука

    Источник: http://www.cros.ru/about/partners/irp/




    Словарь сокращений и аббревиатур.
    Академик.
    2015.

    sokrasheniya.academic.ru

    Структура IRP

    Количество просмотров публикации Структура IRP — 160

    Подсистема в/в и её характеристики.

    Лекция №7-8. Подсистема в/в. Пакеты запросов ввода/вывода (IRP).

    На предыдущей лекции мы рассмотрели схему использования системных сервисов, ᴛ.ᴇ. прохождение запроса в/в от приложения к драйверу и обратно. Компонентом ОС, отвечающим за реализацию этой схемы, является Диспетчер ввода/вывода. Диспетчер в/в является компонентом более общей модели – подсистемы в/в.

    Подсистема в/в включает в себя всœе компоненты, которые обеспечивают возможность осуществления в/в. В число этих компонент входит Диспетчер в/в и всœе драйвера режима ядра.

    В числе характеристик подсистемы в/в NT принято выделять следующие:

    · Согласованность и высокая структурированность

    · Переносимость между процессорными архитектурами

    · Конфигурируемость

    · Вытесняемость и прерываемость

    · Поддержка многопроцессорности

    · Объектная базированность (но не объектная ориентированность)

    · Асинхронность

    · Подсистема в/в управляется пакетами

    · Подсистема в/в многоуровневая (послойная модель)

    Как уже говорилось, подсистема в/в NT управляется пакетами. При таком подходе каждый запрос в/в описывается своим собственным пакетом запроса в/в (I/O Request Packet — IRP).

    При задействовании системного сервиса (к примеру, при запросœе на чтение или запись в файл), Диспетчер в/в обрабатывает данный запрос путем создания пакета IRP, описывающего запрос, и затем передает указатель на данный пакет драйверу для обработки.

    IRP содержит всю необходимую информацию для полного описания запроса Ввода – вывода Диспетчеру Ввода — вывода и драйверам устройств. IRP описывается стандартной структурой типа «IRP», показанной на рис. 1.

    Структура IRP специально разработана для поддержки многоуровневой модели в/в, при которой запрос в/в последовательно обрабатывается стеком из нескольких драйверов.

    Для обеспечения этого каждый Пакет Запроса Ввода — вывода состоит из двух частей: «фиксированной» части и Стека Ввода — вывода. Фиксированная часть IRP содержит информацию относительно той части запроса, которая или не изменяется от драйвера к драйверу, или которую не нужно сохранять при передаче IRP от одного драйвера к другому. Стек Ввода — вывода содержит набор Стеков Размещения Ввода — вывода, каждый из которых содержит информацию, специфическую для каждого драйвера, который может обрабатывать запрос.


    Рис. 1

    Примечание.

    Пакеты IRP всœегда выделяются из невыгружаемой системной памяти (nonpaged pool), в связи с этим к ним может осуществляться обращение из функций, работающих на любом уровне IRQL.

    Как уже говорилось, драйвера подразделяются на 3 класса по их положению в стеке драйверов: драйвера высшего уровня, драйвера промежуточного уровня и драйвера низшего уровня.

    Драйвер высшего уровня — ϶ᴛᴏ верхний драйвер в стеке драйверов, получающий запросы через Диспетчер в/в от компонентов прикладного уровня.

    Драйвер высшего уровня (или, что более правильно, устройство высшего уровня) имеет один или несколько стеков размещения в/в.

    Число стеков размещения в/в устанавливается Диспетчером в/в в поле StackSize объекта-устройство. По умолчанию это значение равно 1. Присваивание происходит при создании устройства функцией IoCreateDevice(). В случае если вы создаёте многоуровневый драйвер, вы должны установить StackSize на 1 больше, чем StackSize объекта-устройство, над которым вы будете размещать свое устройство. В случае, в случае если ваше устройство будет использовать больше одного устройства уровнем ниже, поле StackSize вашего устройства должно быть на 1 больше максимального значения StackSize из всœех устройств уровнем ниже.

    Читайте также


  • — Организационная структура автотранспортного предприятия

    И сферы их рационального использования


    Технико–экономические особенности различных видов транспорта
    Вид
    транспорта
    Особенности транспорта
    Сфера применения
    Достоинства
    Недостатки
    1. Ж/д/
     
    Высокая провозная и пропускная способность;… [читать подробнее].

  • — Организационная структура автотранспортного предприятия

    АТП организуется для перевозок конкретных грузов, конкретных предприятиям и является объединением конкретных транспортных комплексов (транспортных систем). Специфика транспортных систем объединяемых в АТП, заключается:
    в однородности производственных процессов… [читать подробнее].

  • — Тема №7 Занятие №1 Организационо-штатная структура и вооружение мотострелковой бригады

    ЛЕКЦИЯ №9


    Степень риска при сексуальной активности
    А. С высоким риском
    — половые связи, связанные с кровотечением
    — анальные сношения без презерватива
    — вагинальное сношение без презерватива
    — введение пальца в анальное отверстие
    Б. С средни риском
    -… [читать подробнее].

  • — Структура и основы организации ремонтно-обслуживающей базы агропромышленного комплекса

    Планирование – важнейшая составная часть системы хозяйствования, состоящая в разработке, реализации планов и контроль за их выполнением. В современных условиях, когда рыночная экономика вынуждает наших сограждан более требовательно и даже прагматично относиться к… [читать подробнее].

  • — Глава 1. СТРУКТУРА И КЛАССИФИКАЦИЯ МЕХАНИЗМОВ

    Основные понятия теории механизмов и машин
    (машина, механизм, звено, кинематическая пара,







    … [читать подробнее].

  • — Функционально-иерархическая структура ГСП

    И СРЕДСТВ АВТОМАТИЗАЦИИ


    ГОСУДАРСТВЕННАЯ СИСТЕМА ПРОМЫШЛЕННЫХ ПРИБОРОВ



    ГСП представляет собой сложную развивающуюся систему, состоящую из ряда подсистем, которые можно рассматривать и классифицировать с разных позиций. Рассмотрим… [читать подробнее].

  • — Функциональная структура АСУТП

    Укрупненная функциональная структура АСУТП изображена на Рис. 8.
    Исходная информация об автоматически контролируемых переменных технологического процесса и состоянии оборудования в виде аналоговых и дискретных сигналов поступает от различного рода датчиков и… [читать подробнее].

  • — СТРУКТУРА И ФУНКЦИИ СИСТЕМЫ УПРАВЛЕНИЯ

    Процесс принятия управляющих решений при управлении любым объектом связан с количественной оценкой внешних условий (внешних воздействий), состояния объекта и его выходов, и принятием на основе этих количественных оценок решений о численной величине управляющих… [читать подробнее].

  • — Структура АСУ на промышленном предприятии

    АСУ промышленными объектами





    Основные управляющие функции
    1. Прогнозирование хода управляемого процесса и состояния объекта управления.
    2. Выбор оптимальных (или удовлетворительных) управляющих решений.
    3. Формирование управляющих команд в виде… [читать подробнее].

  • — Основные принципы построения ГСП. Структура ГСП.

    Для удовлетворения возросших потребностей промышленности в современных средствах получения, преобразования и передачи информации, а также для хранения и обработки сведений и выработки надлежащих команд управления создана Государственная система промышленных… [читать подробнее].

  • referatwork.ru

    Отправить ответ

    avatar
      Подписаться  
    Уведомление о