Compartilhar via


Função de retorno de chamada PFNKSPINSETDEVICESTATE (ks.h)

Uma rotina de do AVStrMiniPinSetDeviceState de um minidriver AVStream é chamada quando o estado de uma estrutura de KSPIN é alterado devido à chegada de uma propriedade de estado de conexão 'set' IOCTL. Normalmente, isso será fornecido por minidrivers que precisam alterar o estado do hardware.

Sintaxe

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

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

Parâmetros

[in] Pin

Ponteiro para a estrutura de KSPIN para a qual o estado está sendo alterado.

[in] ToState

O destino KSSTATE após o recebimento do IOCTL.

[in] FromState

O KSSTATE doanterior.

Valor de retorno

Retorne STATUS_SUCCESS ou o código de erro retornado da tentativa de definir o estado. Não retorne STATUS_PENDING. O mutex de controle de filtro é mantido durante essa função. Consulte Mutex de controle de filtro no AVStream.

Observações

O minidriver especifica o endereço dessa rotina no setDeviceState membro de sua estrutura KSPIN_DISPATCH.

Os minidrivers não receberão uma parada após a conexão inicial do pino.

Os pinos que usam o mecanismo de transporte padrão (interface padrão/meio padrão ou um uso explícito de KSPIN_FLAG_USE_STANDARD_TRANSPORT em KSPIN_DESCRIPTOR_EX) recebem alterações de estado filtradas por meio do pipe proprietário por meio dessa rotina. Isso significa que nenhuma transição será mais do que uma única etapa. Em outras palavras, KSSTATE_STOP faz transições para KSSTATE_ACQUIRE, KSSTATE_ACQUIRE faz transições para KSSTATE_PAUSE e assim por diante. Além disso, as alterações de estado recebidas nessa rotina representam o estado do pipe como um todo, não o estado individual do pino, conforme relatado no DeviceState membro da estrutura KSPIN.

Os pinos que não usam o mecanismo de transporte padrão (interface não padrão, meio não padrão ou um uso explícito de KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT em KSPIN_DESCRIPTOR_EX) recebem alterações de estado não filtradas por meio dessa rotina. Dessa forma, os pinos de transporte não padrão devem estar preparados para lidar com alterações de estado que saltam mais de uma única etapa. Por exemplo, considere um salto de KSSTATE_RUN para KSSTATE_STOP sem uma KSSTATE_PAUSE intervindo. Além disso, o estado relatado a essa rotina será idêntico ao estado relatado no DeviceState membro da estrutura KSPIN relevante.

Essa rotina é opcional.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX.
da Plataforma de Destino Área de trabalho
cabeçalho ks.h (incluir Ks.h)
IRQL PASSIVE_LEVEL

Consulte também

KSPIN_DISPATCH