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

Se llama a la rutina AVStrMiniPinSetDeviceState de un minidriver avStream cuando se cambia el estado de una estructura KSPIN debido a la llegada de una propiedad de estado de conexión 'set' IOCTL. Normalmente, los minidrivers que necesitan cambiar el estado del hardware lo proporcionarán los minidrives.

Sintaxis

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

Parámetros

[in] Pin

Puntero a la estructura KSPIN para la que cambia el estado.

[in] ToState

KSSTATE de destino después de recibir el IOCTL.

[in] FromState

KSSTATE anterior.

Valor devuelto

Devuelve STATUS_SUCCESS o el código de error que se devolvió del intento de establecer el estado. No devuelva STATUS_PENDING. La exclusión mutua del control de filtro se mantiene durante esta función. Consulte Exclusión mutua de control de filtro en AVStream.

Comentarios

El minidriver especifica la dirección de esta rutina en el miembro SetDeviceState de su estructura KSPIN_DISPATCH .

Los minidrivers no recibirán una parada tras la conexión inicial del pin.

Las patillas que usan el mecanismo de transporte estándar (interfaz estándar/medio estándar o un uso explícito de KSPIN_FLAG_USE_STANDARD_TRANSPORT en KSPIN_DESCRIPTOR_EX) reciben cambios de estado filtrados a través de la canalización propietaria a través de esta rutina. Esto significa que ninguna transición será más de un solo paso. Es decir, KSSTATE_STOP transiciones a KSSTATE_ACQUIRE, KSSTATE_ACQUIRE transiciones a KSSTATE_PAUSE, etc. Además, los cambios de estado recibidos en esta rutina representan el estado de la canalización en su conjunto, no el estado individual de la patilla tal como se indica en el miembro DeviceState de la estructura KSPIN.

Las patillas que no usan el mecanismo de transporte estándar (interfaz no estándar, medio no estándar o un uso explícito de KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT en KSPIN_DESCRIPTOR_EX) reciben cambios de estado no filtrado a través de esta rutina. Por lo tanto, las patillas de transporte no estándar deben estar preparadas para tratar los cambios de estado que saltan más de un solo paso. Por ejemplo, considere un salto de KSSTATE_RUN a KSSTATE_STOP sin una KSSTATE_PAUSE intermedia. Además, el estado notificado a esta rutina será idéntico al estado notificado en el miembro DeviceState de la estructura KSPIN pertinente.

Esta rutina es opcional.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y en sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Escritorio
Encabezado ks.h (incluye Ks.h)
IRQL PASSIVE_LEVEL

Consulte también

KSPIN_DISPATCH