Функция IoStartNextPacketByKey (ntifs.h)
Подпрограмма IoStartNextPacketByKey выводит следующий пакет запроса ввода-вывода из очереди устройства, связанной с указанным объектом устройства, в соответствии с указанным значением ключа сортировки и вызывает подпрограмму StartIo драйвера с этим IRP.
Синтаксис
void IoStartNextPacketByKey(
[in] PDEVICE_OBJECT DeviceObject,
[in] BOOLEAN Cancelable,
[in] ULONG Key
);
Параметры
[in] DeviceObject
Указатель на объект устройства, для которого должен быть выведен из очереди IRP.
[in] Cancelable
Указывает, можно ли отменить irP в очереди устройств.
[in] Key
Указывает ключ сортировки, определяющий, какую запись следует удалить из очереди.
Возвращаемое значение
None
Remarks
Если в настоящее время в очереди устройств для целевого объекта устройства нет irp, эта подпрограмма просто возвращает управление вызывающей.
Если драйвер передал указатель на подпрограмму отмены при вызове IoStartPacket, он должен передать ЗНАЧЕНИЕ TRUE в параметре Отменяемая процедура этой подпрограммы. Если cancelable имеет значение TRUE, диспетчер операций ввода-вывода будет использовать блокировку отмены спина для защиты очереди устройств и текущего IRP.
Драйверы, у которых нет подпрограммы StartIo , не могут вызывать IoStartNextPacketByKey.
Вызывающие функции IoStartNextPacketByKey должны выполняться в среде IRQL <= DISPATCH_LEVEL. Как правило, эта подпрограмма вызывается из подпрограммы DpcForIsr или CustomDpc драйвера устройства, которые выполняются в IRQL = DISPATCH_LEVEL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |