Compartilhar via


Função KsSynchronousDeviceControl (ksproxy.h)

A função KsSynchronousDeviceControl emite uma operação de controle de E/S de dispositivo síncrona para o objeto KS especificado por um identificador de arquivo.

Sintaxe

KSDDKAPI HRESULT KsSynchronousDeviceControl(
  [in]            HANDLE Handle,
  [in]            ULONG  IoControl,
  [in, optional]  PVOID  InBuffer,
  [in]            ULONG  InLength,
  [out, optional] PVOID  OutBuffer,
  [in]            ULONG  OutLength,
  [in, out]       PULONG BytesReturned
);

Parâmetros

[in] Handle

Manipule para o objeto KS no qual executar a operação.

[in] IoControl

Código de controle que identifica um tipo específico de operação a ser executado em um objeto KS.

[in, optional] InBuffer

Ponteiro para um buffer que contém dados que especificam a operação a ser executada.

[in] InLength

Tamanho, em bytes, do buffer no InBuffer.

[out, optional] OutBuffer

Ponteiro para um buffer que contém dados para a operação ou o espaço de buffer que recebe dados para a operação.

[in] OutLength

Tamanho, em bytes, do buffer no OutBuffer.

[in, out] BytesReturned

Ponteiro para uma variável que recebe o tamanho, em bytes, dos dados que KsSynchronousDeviceControl armazena no buffer no OutBuffer.

Retornar valor

Retorna NOERROR se tiver êxito; caso contrário, retorna um código de erro.

Comentários

Para recuperar o identificador para o objeto KS, um aplicativo deve chamar o método IKsObject::KsGetObjectHandle .

Um aplicativo pode definir o código de controle em IoControl e os buffers em InBuffer e OutBuffer da seguinte maneira para especificar a operação a ser executada:

  • Defina IoControl como IOCTL_KS_PROPERTY para acessar uma propriedade. Defina InBuffer para apontar para uma estrutura KSPROPERTY que especifica a propriedade da propriedade definida para acessar e se deseja recuperar informações sobre a propriedade ou definir informações na propriedade . Para definir informações na propriedade , defina OutBuffer para apontar para essas informações. Para recuperar informações da propriedade, defina OutBuffer para receber essas informações.
  • Defina IoControl como IOCTL_KS_METHOD para executar um método. Defina InBuffer para apontar para uma estrutura KSMETHOD que especifica o método do método definido para execução e se deve ler e/ou gravar dados relacionados ao método. Para ler dados, defina OutBuffer para apontar para esses dados. Para gravar dados, defina OutBuffer para receber esses dados.
  • Defina IoControl como IOCTL_KS_ENABLE_EVENT para solicitar que o objeto KS especificado pelo Handle notifique o aplicativo sempre que ocorrer uma ação de evento específica. Defina InBuffer para apontar para uma estrutura KSEVENT que especifica o evento do conjunto de eventos sobre o qual notificar. Defina OutBuffer para apontar para uma estrutura KSEVENTDATA que descreve como o objeto KS deve notificar o aplicativo quando o evento ocorrer. Consulte também Eventos KS.
  • Defina IoControl como IOCTL_KS_DISABLE_EVENT para informar o objeto KS especificado pelo Handle para parar de notificar o aplicativo sempre que ocorrer uma ação de evento específica. Defina InBuffer para apontar para a estrutura KSEVENTDATA que foi usada anteriormente na solicitação de notificação de eventos.
Para recuperar uma lista de todas as propriedades, eventos ou métodos compatíveis com um filtro, um aplicativo pode definir IoControl como IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT ou IOCTL_KS_METHOD. Para a estrutura KSPROPERTY, KSEVENT ou KSMETHOD à qual o InBuffer aponta, defina o membro Set como GUID_NULL e defina o membro Flags como KSPROPERTY_TYPE_SETSUPPORT.

Após a chamada para KsSynchronousDeviceControl, OutBuffer conterá uma matriz de GUIDs definidos com suporte pelo objeto especificado por Handle.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho ksproxy.h (inclua Ksproxy.h)
Biblioteca Ksproxy.lib

Confira também

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY