Реализация обработчика области операций
Драйвер должен предоставить обработчик области операций, который является PACPI_OP_REGION_HANDLER типизированным обратным вызовом. Драйвер ACPI вызывает обработчик операций для доступа к полям данных в области операций драйвера. Объединенная работа драйвера функции и BIOS ACPI определяется поставщиком и зависит от конкретного устройства. Как правило, драйвер функции и ACPI BIOS индексы доступа в области операций, что приводит к операциям, зависящим от устройства, и возвращает все необходимые сведения.
Обработчик области операций обычно использует следующие параметры, которые драйвер ACPI передает обработчику:
AccessType указывает, является ли доступ чтением или записью.
Если доступ является чтением, данные передаются из буфера памяти области операций в буфер данных . Если доступ является записью, данные передаются из буфера данных в буфер памяти области операций. См . раздел Доступ к региону операции.
Адрес указывает смещение в байтах в буфере памяти области операции.
Size указывает количество передаваемых байтов.
Data указывает буфер, предоставляемый драйвером ACPI для передачи данных.
Context указывает контекст области операций, зарегистрированный драйвером для обработчика области операций.
Контекст области операции используется только драйвером функции и зависит от устройства.
Помимо ранее описанных параметров, драйвер ACPI также передает в обработчик области операций указатели на следующие объекты: объект области операции, обработчик завершения и контекст завершения. Однако драйвер функции не использует объект области операции в обработчике, а обработчик завершения и контекст зарезервированы для внутреннего использования.