Compartir a través de


Función IoSetNextIrpStackLocation (wdm.h)

La rutina IoSetNextIrpStackLocation establece la ubicación de la pila IRP en un IRP asignado por el controlador a la del autor de la llamada.

Sintaxis

void IoSetNextIrpStackLocation(
  [in, out] PIRP Irp
);

Parámetros

[in, out] Irp

Puntero al IRP cuya ubicación de pila se va a establecer.

Valor devuelto

Ninguno

Observaciones

En general, esta rutina rara vez la usan los conductores. Se usa principalmente por los controladores que requieren su propia ubicación de pila en un IRP que han asignado, por su cuenta, para enviar a otro controlador.

ioSetNextIrpStackLocation generalmente no es necesario porque tampoco:

  • El controlador recibió el IRP que pasa de otro controlador de nivel superior, por lo que ya posee una ubicación de pila,
  • O bien, el controlador asignó el IRP, pero no necesita su propia ubicación de pila porque puede mantener todo lo que necesita en un bloque de contexto cuya dirección se puede pasar a su rutina de ioCompletion.
Se debe tener cuidado si se llama a esta rutina, especialmente al asignar el IRP con IoAllocateIrp o IoMakeAssociatedIrp. El escritor del controlador de asignación debe recordar que una ubicación de pila específica del autor de la llamada no se incluye en el número de ubicaciones de pila requeridas por los controladores de nivel inferior a los que envía IRP con IoCallDriver. Un controlador debe especificar explícitamente una ubicación de pila para sí misma en su llamada a IoAllocateIrp o IoMakeAssociatedIrp si llama a IoSetNextIrpStackLocation con el IRP devuelto por cualquiera de las rutinas.

Un controlador no puede llamar a IoSetNextIrpStackLocation con ningún IRP que asigne llamando a IoBuildAsynchronousFsdRequest, IoBuildDeviceIoControlRequesto IoBuildSynchronousFsdRequest.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Escritorio
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
irQL Cualquier nivel

Consulte también

IO_STACK_LOCATION

ioAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine