функция обратного вызова KIPI_BROADCAST_WORKER (wdm.h)
Подпрограмма IpiGenericCall выполняется одновременно на всех процессорах.
Синтаксис
KIPI_BROADCAST_WORKER KipiBroadcastWorker;
ULONG_PTR KipiBroadcastWorker(
[in] ULONG_PTR Argument
)
{...}
Параметры
[in] Argument
Предоставляет значение, переданное подпрограмме KeIpiGenericCall с именем IpiGenericCall.
Возвращаемое значение
IpiGenericCall возвращает определенное драйвером значение. Если IpiGenericCall запущен на том же процессоре, который называется KeIpiGenericCall, KeIpiGenericCall возвращает определенное драйвером значение, которое возвращает IpiGenericCall . В противном случае значение игнорируется.
Комментарии
Подпрограммы IpiGenericCall выполняются в IRQL = IPI_LEVEL, что больше, чем DIRQL для каждого устройства. Подпрограммы IpiGenericCall должны соответствовать тем же ограничениям, что и процедуры обратного вызова проверка ошибок. Дополнительные сведения об этих ограничениях см. в статье Написание процедуры обратного вызова проверки ошибок.
Примеры
Чтобы определить подпрограмму обратного вызова IpiGenericCall , необходимо сначала предоставить объявление функции, определяющее тип определяемой процедуры обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить подпрограмму обратного вызова IpiGenericCall с именем MyIpiGenericCall
, используйте тип KIPI_BROADCAST_WORKER, как показано в следующем примере кода:
KIPI_BROADCAST_WORKER MyIpiGenericCall;
Затем реализуйте процедуру обратного вызова следующим образом:
_Use_decl_annotations_
ULONG_PTR
MyIpiGenericCall(
ULONG_PTR Argument
)
{
// Function body
}
Тип функции KIPI_BROADCAST_WORKER определен в файле заголовка Wdm.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку в _Use_decl_annotations_
определение функции. Заметка _Use_decl_annotations_
гарантирует, что будут использоваться заметки, которые применяются к типу функции KIPI_BROADCAST_WORKER в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов WDM. Дополнительные сведения о _Use_decl_annotations_
см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | Звонил на IPI_LEVEL. |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по