Compartilhar via


Função IoStartNextPacket (wdm.h)

A rotina IoStartNextPacket desativa o próximo IRP, se houver, da fila de dispositivos associada do objeto de dispositivo fornecido e chama a rotina de StartIo do do driver.

Sintaxe

void IoStartNextPacket(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] BOOLEAN        Cancelable
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto do dispositivo para o qual o IRP deve ser desativado.

[in] Cancelable

Especifica se os IRPs na fila do dispositivo podem ser cancelados.

Valor de retorno

Nenhum

Observações

Se não houver NENHUM IRPs atualmente na fila do dispositivo para o DeviceObject de destino, essa rotina simplesmente retornará o controle ao chamador.

Se o driver passou um ponteiro para uma rotina de cancelamento quando chamou IoStartPacket, ele deverá passar TRUE no parâmetro Cancelável. Se cancelável for VERDADEIRO, o gerenciador de E/S usará o bloqueio de rotação de cancelamento para proteger a fila do dispositivo e o IRP atual.

Os drivers que não têm uma rotina de startio não podem chamar IoStartNextPacket .

Os drivers que chamam IoStartNextPacket de sua rotina de StartIo devem estar cientes dos problemas de recursão. Se um driver puder chamar IoStartNextPacket em um grande número de solicitações sucessivas de sua rotina de do StartIo (por exemplo, quando ocorrer um erro de dispositivo e o driver estiver desmarcando a fila do dispositivo), você deverá definir o atributo DeferredStartIo para o dispositivo usando IoSetStartIoAttributes rotina. Esse atributo garante que o próximo pacote não será emitido até que o startio anterior chamada retorne.

Os chamadores de IoStartNextPacket devem estar em execução no IRQL = DISPATCH_LEVEL. Normalmente, essa rotina é chamada da rotina de DpcForIsr de um driver de dispositivo ou rotina de CustomDpc, ambas executadas em IRQL = DISPATCH_LEVEL.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL (consulte a seção Comentários)
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch (wdm), SpinLockSafe(storport), SpinLockSafe(storport), SpinLockSafe(wdm), StartIoRecursion(wdm)

Consulte também

DEVICE_OBJECT

IoSetStartIoAttributes

IoStartNextPacketByKey

IoStartPacket