KsSynchronousDeviceControl-Funktion (ksproxy.h)

Die KsSynchronousDeviceControl-Funktion gibt einen synchronen Geräte-E/A-Steuerungsvorgang für das KS-Objekt aus, das durch ein Dateihandle angegeben wird.

Syntax

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

Parameter

[in] Handle

Handle an das KS-Objekt, für das der Vorgang ausgeführt werden soll.

[in] IoControl

Steuerungscode, der einen bestimmten Vorgangstyp identifiziert, der für ein KS-Objekt ausgeführt werden soll.

[in, optional] InBuffer

Zeiger auf einen Puffer, der Daten enthält, die den auszuführenden Vorgang angeben.

[in] InLength

Größe des Puffers in InBuffer in Byte.

[out, optional] OutBuffer

Zeiger auf einen Puffer, der entweder Daten für den Vorgang oder Pufferspeicher enthält, der Daten für den Vorgang empfängt.

[in] OutLength

Größe des Puffers bei OutBuffer in Byte.

[in, out] BytesReturned

Zeiger auf eine Variable, die die Größe der Daten in Bytes empfängt, die KsSynchronousDeviceControl im Puffer bei OutBuffer speichert.

Rückgabewert

Gibt NOERROR zurück, wenn dies erfolgreich war. Gibt andernfalls einen Fehlercode zurück.

Hinweise

Um das Handle für das KS-Objekt abzurufen, sollte eine Anwendung die IKsObject::KsGetObjectHandle-Methode aufrufen.

Eine Anwendung kann den Steuerungscode in IoControl und die Puffer in InBuffer und OutBuffer wie folgt festlegen, um den auszuführenden Vorgang anzugeben:

  • Legen Sie IoControl auf IOCTL_KS_PROPERTY fest, um auf eine Eigenschaft zuzugreifen. Legen Sie InBuffer so fest, dass er auf eine KSPROPERTY-Struktur zeigt, die die Eigenschaft der eigenschaft angibt, auf die zugegriffen werden soll, und ob Informationen über die Eigenschaft oder festgelegte Informationen in der Eigenschaft abgerufen werden sollen. Um Informationen in der -Eigenschaft festzulegen, legen Sie OutBuffer fest, um auf diese Informationen zu verweisen. Um Informationen aus der -Eigenschaft abzurufen, legen Sie OutBuffer fest, um diese Informationen zu empfangen.
  • Legen Sie IoControl auf IOCTL_KS_METHOD fest, um eine Methode auszuführen. Legen Sie InBuffer so fest, dass er auf eine KSMETHOD-Struktur zeigt, die die Methode des auszuführenden Methodensatzes angibt und ob Daten im Zusammenhang mit der Methode gelesen und/oder geschrieben werden sollen. Um Daten zu lesen, legen Sie OutBuffer so fest, dass auf diese Daten verweist. Um Daten zu schreiben, legen Sie OutBuffer fest, um diese Daten zu empfangen.
  • Legen Sie IoControl auf IOCTL_KS_ENABLE_EVENT fest, um anzufordern, dass das von Handle angegebene KS-Objekt die Anwendung benachrichtigt, wenn eine bestimmte Ereignisaktion auftritt. Legen Sie InBuffer fest, um auf eine KSEVENT-Struktur zu zeigen, die das Ereignis des Ereignissatzes angibt, über das benachrichtigt werden soll. Legen Sie OutBuffer fest, um auf eine KSEVENTDATA-Struktur zu verweisen, die beschreibt, wie das KS-Objekt die Anwendung benachrichtigen soll, wenn das Ereignis auftritt. Siehe auch KS-Ereignisse.
  • Legen Sie IoControl auf IOCTL_KS_DISABLE_EVENT fest, um das von Handle angegebene KS-Objekt darüber zu informieren, dass die Anwendung nicht benachrichtigt wird, wenn eine bestimmte Ereignisaktion auftritt. Legen Sie InBuffer fest, um auf die KSEVENTDATA-Struktur zu verweisen, die zuvor in der Ereignisbenachrichtigungsanforderung verwendet wurde.
Um eine Liste aller Eigenschaften, Ereignisse oder Methoden abzurufen, die von einem Filter unterstützt werden, kann eine Anwendung IoControl auf IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT oder IOCTL_KS_METHOD festlegen. Legen Sie für die Struktur KSPROPERTY, KSEVENT oder KSMETHOD, auf die InBuffer verweist, das Element Set auf GUID_NULL und das Flags-Element auf KSPROPERTY_TYPE_SETSUPPORT fest.

Nach dem Aufruf von KsSynchronousDeviceControl enthält OutBuffer ein Array von festgelegten GUIDs, die von dem von Handle angegebenen Objekt unterstützt werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile ksproxy.h (include Ksproxy.h)
Bibliothek Ksproxy.lib

Weitere Informationen

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY