Функция IoRequestDpc (wdm.h)

Подпрограмма IoRequestDpc помещает в очередь подпрограмму DpcForIsr , предоставляемую драйвером, для завершения обработки ввода-вывода, управляемой прерыванием, на более низком уровне IRQL.

Синтаксис

void IoRequestDpc(
  [in] PDEVICE_OBJECT         DeviceObject,
  [in] PIRP                   Irp,
  [in] __drv_aliasesMem PVOID Context
);

Параметры

[in] DeviceObject

Указатель на объект устройства, для которого обрабатывается запрос, вызвавшее прерывание.

[in] Irp

Указатель на текущий IRP для указанного устройства.

[in] Context

Указатель на определенный драйвером контекст, передаваемый в подпрограмму DPC.

Возвращаемое значение

None

Remarks

Вызывающие устройства IoRequestDpc должны выполняться в DIRQL.

Драйверы вызывают IoRequestDpc из подпрограммы InterruptService . Из-за этого IoRequestDpc выполняется со значением DIRQL, которое было указано параметром SynchronizeIrql , когда драйвер называется IoConnectInterrupt. Однако можно также ставить DPC в очередь в любом irQL >= DISPATCH_LEVEL с помощью подпрограмм KeXxxDpc . Дополнительные сведения см. в разделе Какой тип DPC следует использовать?

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
IRQL DIRQL

См. также раздел

IoInitializeDpcRequest

KeInitializeDpc

KeInsertQueueDpc