Функция KsSynchronousDeviceControl (ksproxy.h)
Функция KsSynchronousDeviceControl выполняет синхронную операцию управления вводом-выводом устройства для объекта KS, указанного дескриптором файла.
Синтаксис
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
);
Параметры
[in] Handle
Дескриптор объекта KS, для которого выполняется операция.
[in] IoControl
Управляющий код, определяющий определенный тип операции, выполняемой с объектом KS.
[in, optional] InBuffer
Указатель на буфер, содержащий данные, указывающие выполняемую операцию.
[in] InLength
Размер буфера в байтах в InBuffer.
[out, optional] OutBuffer
Указатель на буфер, содержащий данные для операции или буферное пространство, которое получает данные для операции.
[in] OutLength
Размер буфера в байтах в OutBuffer.
[in, out] BytesReturned
Указатель на переменную, которая получает размер (в байтах) данных, которые KsSynchronousDeviceControl хранит в буфере в OutBuffer.
Возвращаемое значение
Возвращает NOERROR в случае успешного выполнения; в противном случае возвращает код ошибки.
Комментарии
Чтобы получить дескриптор объекта KS, приложение должно вызвать метод IKsObject::KsGetObjectHandle .
Приложение может задать управляющий код в IoControl и буферы в InBuffer и OutBuffer следующим образом, чтобы указать выполняемую операцию:
- Задайте для IoControlзначение IOCTL_KS_PROPERTY для доступа к свойству. Присвойте inBuffer значение , указывающее на структуру KSPROPERTY , которая указывает свойство свойства, к которому требуется доступ, и указывает, следует ли извлекать сведения о свойстве или задавать сведения в свойстве . Чтобы задать сведения в свойстве , задайте outBuffer , чтобы указать эти сведения. Чтобы получить сведения из свойства , задайте OutBuffer для получения этой информации.
- Задайте для IoControlзначение IOCTL_KS_METHOD для выполнения метода. Задайте inBuffer , чтобы указать структуру KSMETHOD , которая указывает метод набора методов для выполнения и указывает, следует ли считывать и(или) записывать данные, связанные с методом . Чтобы прочитать данные, задайте outBuffer для указания на эти данные. Чтобы записать данные, задайте OutBuffer для получения данных.
- Задайте для IoControlзначение IOCTL_KS_ENABLE_EVENT , чтобы запрашивать, чтобы объект KS, указанный в параметре Handle , уведомлял приложение при каждом возникновении определенного действия события. Задайте inBuffer , чтобы указать структуру KSEVENT , которая указывает событие набора событий, о котором следует уведомлять. Задайте OutBuffer , чтобы указать структуру KSEVENTDATA , которая описывает, как объект KS должен уведомлять приложение о возникновении события. См. также раздел События KS.
- Присвойте ioControlзначение IOCTL_KS_DISABLE_EVENT , чтобы сообщить объекту KS, указанному в дескрипторове , чтобы прекратить уведомлять приложение при возникновении определенного действия события. Задайте inBuffer , чтобы указать структуру KSEVENTDATA , которая ранее использовалась в запросе уведомления о событиях.
После вызова KsSynchronousDeviceControlOutBuffer будет содержать массив идентификаторов GUID набора, поддерживаемых объектом, заданным параметром Handle.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | ksproxy.h (включая Ksproxy.h) |
Библиотека | Ksproxy.lib |