Функция IoStartPacket (wdm.h)
Подпрограмма IoStartPacket вызывает подпрограмму драйвера StartIo с заданным IRP или вставляет IRP в очередь устройств, связанную с заданным объектом устройства, если устройство уже занято.
Синтаксис
void IoStartPacket(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in, optional] PULONG Key,
[in, optional] PDRIVER_CANCEL CancelFunction
);
Параметры
[in] DeviceObject
Указатель на целевой объект устройства для IRP.
[in] Irp
Указатель на обработку IRP.
[in, optional] Key
Указатель на значение, определяющее место вставки пакета в очередь устройства. Если это равно нулю, пакет вставляется в хвост очереди устройства.
[in, optional] CancelFunction
Указывает точку входа для предоставленной драйвером процедуры отмены драйвера.
Возвращаемое значение
Никакой
Замечания
Если драйвер уже занят обработкой запроса целевого объекта устройства, пакет помещается в очередь устройства. В противном случае эта подпрограмма вызывает драйвера StartIo подпрограмму с указанным IRP.
Если указан указатель, отличный от NULL CancelFunction, он устанавливается в IRP, чтобы программа отмены отмены драйвера вызывается, если IRP отменен до его завершения.
Драйверы, у которых нет подпрограммы StartIo, не могут вызывать IoStartPacket.
Вызывающие IoStartPacket должны выполняться в IRQL <= DISPATCH_LEVEL. Обычно эта подпрограмма вызывается из подпрограммы диспетчера драйвера устройства в IRQL = PASSIVE_LEVEL.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (см. раздел "Примечания") |