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) |