Función IoStartPacket (wdm.h)

La rutina IoStartPacket llama a la rutina StartIo del controlador con el IRP especificado o inserta el IRP en la cola de dispositivos asociada al objeto de dispositivo determinado si el dispositivo ya está ocupado.

Sintaxis

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

Parámetros

[in] DeviceObject

Puntero al objeto de dispositivo de destino del IRP.

[in] Irp

Puntero al IRP que se va a procesar.

[in, optional] Key

Puntero a un valor que determina dónde insertar el paquete en la cola del dispositivo. Si es cero, el paquete se inserta al final de la cola del dispositivo.

[in, optional] CancelFunction

Especifica el punto de entrada de una rutina Cancel proporcionada por el controlador.

Valor devuelto

None

Observaciones

Si el controlador ya está ocupado procesando una solicitud para el objeto de dispositivo de destino, el paquete se pone en cola en la cola del dispositivo. De lo contrario, esta rutina llama a la rutina StartIo del controlador con el IRP especificado.

Si se proporciona un puntero CancelFunction distinto de NULL, se establece en el IRP para que se llame a la rutina Cancel del controlador si el IRP se cancela antes de su finalización.

Los controladores que no tienen una rutina StartIo no pueden llamar a IoStartPacket.

Los autores de llamadas de IoStartPacket deben ejecutarse en IRQL <= DISPATCH_LEVEL. Normalmente, se llama a esta rutina desde la rutina dispatch de un controlador de dispositivo en IRQL = PASSIVE_LEVEL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte la sección Comentarios)

Consulte también

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey