Поделиться через


Функция 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

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

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket