Compartir a través de


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

Se llama a una rutina de AVStrMiniPinSetDeviceState de AVStream cuando se cambia el estado de una estructura de 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 de KSPIN para la que cambia el estado.

[in] ToState

El destino KSSTATE después de recibir el IOCTL.

[in] FromState

El de 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 del control de filtros en AVStream.

Observaciones

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

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

Anclajes 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 filtrado a través de la canalización propietaria a través de esta rutina. Esto significa que ninguna transición será más que 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 del pin tal como se indica en el DeviceState miembro 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 que intervenga KSSTATE_PAUSE. Además, el estado notificado a esta rutina será idéntico al estado notificado en el DeviceState miembro de la estructura KSPIN pertinente.

Esta rutina es opcional.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
de la plataforma de destino de Escritorio
encabezado de ks.h (incluya Ks.h)
irQL PASSIVE_LEVEL

Consulte también

KSPIN_DISPATCH