функция обратного вызова 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 (include Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | Вызывается в IPI_LEVEL. |