Condividi tramite


Funzione KsSynchronousDeviceControl (ksproxy.h)

La funzione KsSynchronousDeviceControl genera un'operazione di controllo I/O del dispositivo sincrona all'oggetto KS specificato da un handle di file.

Sintassi

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
);

Parametri

[in] Handle

Handle per l'oggetto KS in cui eseguire l'operazione.

[in] IoControl

Codice di controllo che identifica un tipo specifico di operazione da eseguire su un oggetto KS.

[in, optional] InBuffer

Puntatore a un buffer contenente dati che specifica l'operazione da eseguire.

[in] InLength

Dimensioni, in byte, del buffer in InBuffer.

[out, optional] OutBuffer

Puntatore a un buffer contenente i dati per l'operazione o lo spazio del buffer che riceve i dati per l'operazione.

[in] OutLength

Dimensioni, in byte, del buffer in OutBuffer.

[in, out] BytesReturned

Puntatore a una variabile che riceve le dimensioni, in byte, dei dati archiviati da KsSynchronousDeviceControl nel buffer in OutBuffer.

Valore restituito

Restituisce NOERROR se l'operazione riesce; in caso contrario, restituisce un codice di errore.

Commenti

Per recuperare l'handle all'oggetto KS, un'applicazione deve chiamare il metodo IKsObject::KsGetObjectHandle .

Un'applicazione può impostare il codice di controllo in IoControl e i buffer in InBuffer e OutBuffer come indicato di seguito per specificare l'operazione da eseguire:

  • Impostare IoControl su IOCTL_KS_PROPERTY per accedere a una proprietà. Impostare InBuffer in modo che punti a una struttura KSPROPERTY che specifica la proprietà della proprietà impostata per accedere e se recuperare informazioni sulla proprietà o impostare le informazioni nella proprietà. Per impostare le informazioni nella proprietà, impostare OutBuffer in modo che punti a tali informazioni. Per recuperare informazioni dalla proprietà, impostare OutBuffer per ricevere tali informazioni.
  • Impostare IoControl su IOCTL_KS_METHOD per eseguire un metodo. Impostare InBuffer in modo che punti a una struttura KSMETHOD che specifica il metodo del metodo impostato da eseguire e se leggere e/o scrivere dati correlati al metodo. Per leggere i dati, impostare OutBuffer in modo che punti a tali dati. Per scrivere dati, impostare OutBuffer per ricevere tali dati.
  • Impostare IoControl su IOCTL_KS_ENABLE_EVENT per richiedere che l'oggetto KS specificato da Handle comunicherà all'applicazione ogni volta che si verifica un'azione evento specifica. Impostare InBuffer in modo che punti a una struttura KSEVENT che specifica l'evento del set di eventi su cui inviare una notifica. Impostare OutBuffer in modo che punti a una struttura KSEVENTDATA che descrive come l'oggetto KS deve notificare all'applicazione quando si verifica l'evento. Vedere anche Eventi KS.
  • Impostare IoControl su IOCTL_KS_DISABLE_EVENT per informare l'oggetto KS specificato da Handle per interrompere la notifica all'applicazione ogni volta che si verifica un'azione evento specifica. Impostare InBuffer in modo che punti alla struttura KSEVENTDATA usata in precedenza nella richiesta di notifica degli eventi.
Per recuperare un elenco di tutte le proprietà, gli eventi o i metodi supportati da un filtro, un'applicazione può impostare IoControl su IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT o IOCTL_KS_METHOD. Per la struttura KSPROPERTY, KSEVENT o KSMETHOD su cui InBuffer punta, impostare il membro Set su GUID_NULL e impostare il membro Flags su KSPROPERTY_TYPE_SETSUPPORT.

Dopo la chiamata a KsSynchronousDeviceControl, OutBuffer conterrà una matrice di GUID impostati supportati dall'oggetto specificato da Handle.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ksproxy.h (include Ksproxy.h)
Libreria Ksproxy.lib

Vedi anche

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY