Compartilhar via


Função IoStartPacket (ntifs.h)

A rotina IoStartPacket chama a rotina StartIo do driver com o IRP fornecido ou insere o IRP na fila de dispositivos associada ao objeto de dispositivo especificado 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 para uma rotina cancelar fornecida pelo driver.

Retornar valor

Nenhum

Comentários

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 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 Cancelar do driver seja chamada se o IRP for cancelado antes de sua conclusão.

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

Os chamadores de IoStartPacket devem estar em execução em IRQL <= DISPATCH_LEVEL. Normalmente, essa rotina é chamada da rotina dispatch de um driver de dispositivo em IRQL = PASSIVE_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclui Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte a seção Comentários)

Confira também

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey