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