Compartilhar via


Função KsSynchronousDeviceControl (ksproxy.h)

A função KsSynchronousDeviceControl emite uma operação de controle de E/S de dispositivo síncrono 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 executada 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 em InBuffer.

[out, optional] OutBuffer

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

[in] OutLength

Tamanho, em bytes, do buffer em outbuffer .

[in, out] BytesReturned

Ponteiro para uma variável que recebe o tamanho, em bytes, dos dados que repositórios de KsSynchronousDeviceControl no buffer em outbuffer.

Valor de retorno

Retorna NOERROR se bem-sucedido; caso contrário, retorna um código de erro.

Observações

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 do InBuffer e do OutBuffer da seguinte maneira para especificar a operação a ser executada:

  • Defina IoControl para IOCTL_KS_PROPERTY para acessar uma propriedade. Defina do InBuffer para apontar para uma estrutura de KSPROPERTY que especifica a propriedade do conjunto de propriedades a ser acessada e se deseja recuperar informações sobre a propriedade ou definir informações na propriedade. Para definir informações na propriedade, defina do OutBuffer para apontar para essas informações. Para recuperar informações da propriedade, defina do OutBuffer para receber essas informações.
  • Defina IoControl para IOCTL_KS_METHOD executar um método. Defina do InBuffer para apontar para uma estrutura de KSMETHOD que especifica o método do método definido para executar e se os dados de leitura e/ou gravação relacionados ao método devem ser lidos e/ou gravados. Para ler dados, defina do OutBuffer para apontar para esses dados. Para gravar dados, defina do OutBuffer para receber esses dados.
  • Defina IoControl para IOCTL_KS_ENABLE_EVENT solicitar que o objeto KS especificado por Handle notifique o aplicativo sempre que ocorrer uma ação de evento específica. Defina do InBuffer para apontar para uma estrutura de KSEVENT que especifica o evento do conjunto de eventos sobre o qual notificar. Defina do OutBuffer para apontar para uma estrutura de KSEVENTDATA que descreve como o objeto KS deve notificar o aplicativo quando o evento ocorrer. Consulte também de eventos KS.
  • Defina IoControl para IOCTL_KS_DISABLE_EVENT para informar o objeto KS especificado por Handle para parar de notificar o aplicativo sempre que ocorrer uma ação de evento específica. Defina do InBuffer para apontar para a estrutura de KSEVENTDATA usada anteriormente na solicitação de notificação de evento.
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 pontos de do InBuffer, defina o membro Set como GUID_NULL e defina o membro do Flags como KSPROPERTY_TYPE_SETSUPPORT.

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

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho ksproxy.h (inclua Ksproxy.h)
biblioteca Ksproxy.lib

Consulte também

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY