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

Se llama a una rutina de minidriver de 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 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 realiza correctamente. Devuelve STATUS_SUCCESS o STATUS_PENDING.

Comentarios

IRP Descripción
IRP_MJ_CREATE Normalmente, los minidrivers usan esta rutina que quieren inicializar el contexto y los recursos asociados con la patilla. El minidriver especifica la dirección de esta rutina en el miembro Create de su estructura de KSPIN_DISPATCH . Se llama a esta rutina cuando se crea un pin. En el momento en 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 quieran 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 momento en el que se llama a la rutina, se han liberado 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 exclusión mutuas, consulte Exclusión mutua en AVStream. Esta rutina es opcional.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ks.h (incluya Ks.h)
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest