Compartilhar via


Função IoStartPacket (wdm.h)

O rotina de IoStartPacket chama a rotina de StartIo do driver com o IRP fornecido ou insere o IRP na fila do dispositivo associada ao objeto de dispositivo fornecido se o dispositivo já estiver ocupado.

Sintaxe

void IoStartPacket(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           PIRP           Irp,
  [in, optional] PULONG         Key,
  [in, optional] PDRIVER_CANCEL CancelFunction
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto de dispositivo de destino para o IRP.

[in] Irp

Ponteiro para o IRP a ser processado.

[in, optional] Key

Ponteiro para um valor que determina onde inserir o pacote na fila do dispositivo. Se for zero, o pacote será inserido na parte final da fila do dispositivo.

[in, optional] CancelFunction

Especifica o ponto de entrada de uma rotina de Cancelar fornecida pelo driver.

Valor de retorno

Nenhum

Observações

Se o driver já estiver ocupado processando uma solicitação para o objeto de dispositivo de destino, o pacote será enfileirado na fila do dispositivo. Caso contrário, essa rotina chamará a rotina de StartIo do driver com o IRP especificado.

Se um ponteiro CancelFunction não NULL for fornecido, ele será definido no IRP para que a rotina de cancelar do do driver seja chamada se o IRP for cancelado antes de sua conclusão.

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

Os chamadores do IoStartPacket devem estar em execução no IRQL <= DISPATCH_LEVEL. Normalmente, essa rotina é chamada da rotina de Expedição de um driver de dispositivo no IRQL = PASSIVE_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)

Consulte também

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey