Compartir a través de


Función de devolución de llamada PFNKSPINIRP (ks.h)

Se llama a la rutina de un minidriver avStream cuando se realiza una actividad en el pin y recibe estos IRP:

Sintaxis

PFNKSPINIRP Pfnkspinirp;

NTSTATUS Pfnkspinirp(
  [in] PKSPIN Pin,
  [in] PIRP Irp
)
{...}

Parámetros

[in] Pin

Puntero al KSPIN de que se acaba de crear.

[in] Irp

Puntero al IRP para pin.

Valor devuelto

Si la rutina se realiza correctamente, se garantiza que la operación se realice correctamente. Devuelve STATUS_SUCCESS o STATUS_PENDING.

Observaciones

IRP Descripción
IRP_MJ_CREATE Normalmente, los minidrivers usan esta rutina que desean inicializar el contexto y los recursos asociados con el pin. El minidriver especifica la dirección de esta rutina en el miembro Crear de su estructura de KSPIN_DISPATCH. Se llama a esta rutina cuando se crea un pin. En el punto en el que se llama a esta rutina, el objeto de archivo tiene un contexto asociado y se ha asignado el encabezado del objeto KS. Normalmente, los minidrivers que desean inicializar el contexto y los recursos asociados con el pin proporcionarán esta función. La exclusión mutua del control de filtro se mantiene mientras se encuentra en esta función. Se llamará a la función en IRQL = PASSIVE_LEVEL. Esta rutina es opcional. Si la rutina se realiza correctamente, se garantiza que la operación de creación se realice correctamente. Devuelve STATUS_SUCCESS o STATUS_PENDING. Si un minidriver devuelve STATUS_PENDING, AVStream no completará el IRP_MJ_CREATE inmediatamente. Sin embargo, antes de devolver STATUS_PENDING, el minidriver debe llamar a IoMarkIrpPending. Una vez completado el procesamiento de la creación, el minidriver debe establecer el código de estado del IRP y, a continuación, llamar a KsCompletePendingRequest.
IRP_MJ_CLOSE El minidriver especifica la dirección de esta rutina en el miembro close de su estructura de KSPIN_DISPATCH. En el punto en el que se llama a la rutina, se han liberado todos los eventos registrados en el pin, pero el objeto está intacto. La exclusión mutua del control de filtro se mantiene mientras se encuentra en esta función. Para obtener más información sobre las exclusiones mutuas, consulte Exclusión mutua en AVStream. Esta rutina es opcional.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de ks.h (incluya Ks.h)
irQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

ioMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest