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.
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 |