структура ACX_REQUEST_PARAMETERS (acxrequest.h)
Структура ACX_REQUEST_PARAMETERS получает параметры, связанные с запросом ACX ввода-вывода.
Следующие параметры основаны на вызываемой службе, например свойстве, методе или событии. Драйверы могут определить, какой набор использовать на основе ACX_ITEM_TYPE.
Три варианта использования этой структуры упрощают обмен данными с существующими типами потоковой передачи ядра (KS). Дополнительные сведения о KS см. в разделе Свойства, события и методы KS.
Конкретные сведения о каждом из типов см. в следующих разделах.
Кроме того, могут оказаться полезными следующие разделы.
Структура KSIDENTIFIER для наборов свойств аудиодрайверов(ks.h)
Синтаксис
typedef struct _ACX_REQUEST_PARAMETERS {
USHORT Size;
UCHAR MajorFunction;
UCHAR MinorFunction;
ACX_REQUEST_TYPE Type;
union {
struct {
GUID Set;
ULONG Id;
ACX_PROPERTY_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Control;
ULONG ControlCb;
PVOID Value;
ULONG ValueCb;
} Property;
struct {
GUID Set;
ULONG Id;
ACX_METHOD_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Args;
ULONG ArgsCb;
PVOID Result;
ULONG ResultCb;
} Method;
struct {
GUID Set;
ULONG Id;
ACX_EVENT_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Data;
ULONG DataCb;
ACXEVENTDATA EventData;
} Event;
struct {
PVOID Control;
ULONG ControlCb;
} Create;
} Parameters;
} ACX_REQUEST_PARAMETERS, *PACX_REQUEST_PARAMETERS;
Члены
Size
Размер структуры в байтах.
MajorFunction
Основная функция WDF IRP, используемая для этого запроса, например IRP_MJ_DEVICE_CONTROL. Дополнительные сведения о WDF IRP см. в разделе Коды основных функций IRP.
MinorFunction
Дополнительная функция WDF IRP, используемая для этого запроса. Дополнительные сведения о вспомогательной функции см. в разделе, связанном с основным IRP, например Plug and Play вспомогательные irp, дополнительные irps управления питанием и вспомогательные функции WMI.
Type
Перечисление ACX_REQUEST_TYPE описывает тип элементов, которые будут отправляться в запросе. В зависимости от указанного типа будет использоваться подмножество параметров, перечисленных ниже.
Parameters
Parameters.Property
Параметры свойств KS используются для запроса ACX. Дополнительные сведения см. в разделе Структура KSPROPERTY.
Parameters.Property.Set
Указывает GUID, который идентифицирует набор свойств потоковой передачи ядра.
Parameters.Property.Id
Указывает член набора свойств.
Parameters.Property.Verb
Перечисление ACX_PROPERTY_VERB , описывающее команду свойства.
Parameters.Property.ItemType
Перечисление ACX_ITEM_TYPE , описывающее тип элемента ACX, который является целевым объектом этого запроса.
Parameters.Property.ItemId
Идентификатор элемента.
Parameters.Property.Control
Указатель на параметры системной службы, которые используются в качестве дополнительных входных параметров для запроса ACX.
Parameters.Property.ControlCb
Число в байтах (размер) буфера Property.Control.
Parameters.Property.Value
Указатель на значение свойства.
Parameters.Property.ValueCb
Количество в байтах (размер) буфера Property.Value.
Parameters.Method
Параметры, используемые для запроса методов KS .
Parameters.Method.Set
Указывает GUID, который идентифицирует набор методов потоковой передачи ядра.
Parameters.Method.Id
Указывает член набора методов.
Parameters.Method.Verb
Перечисление ACX_METHOD_VERB , описывающее отправляемый элемент.
Parameters.Method.ItemType
Перечисление ACX_ITEM_TYPE , описывающее тип элемента ACX, который является целевым объектом этого запроса.
Parameters.Method.ItemId
Идентификатор отправляемого элемента.
Parameters.Method.Args
Указатель на необязательные аргументы для метода .
Parameters.Method.ArgsCb
Число в байтах (размер) необязательных аргументов для метода .
Parameters.Method.Result
Указатель на результат метода .
Parameters.Method.ResultCb
Число в байтах (размер) буфера Method.Result.
Parameters.Event
Параметры, используемые для событий KS , которые используются для запроса ACX. Дополнительные сведения см. в разделе Структура KSEVENT.
Parameters.Event.Set
Указывает GUID, идентифицирующий набор событий потоковой передачи ядра.
Parameters.Event.Id
Указывает член набора событий.
Parameters.Event.Verb
Перечисление ACX_EVENT_VERB , описывающее отправляемый элемент.
Parameters.Event.ItemType
Перечисление ACX_ITEM_TYPE , описывающее тип элемента ACX, который является целевым объектом этого запроса.
Parameters.Event.ItemId
Идентификатор элемента события.
Parameters.Event.Data
Указатель на данные события.
Parameters.Event.DataCb
Количество в байтах (размер) буфера Event.Data.
Parameters.Event.EventData
Объект ACXEVENTDATA. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX.
Parameters.Create
Структура, содержащая параметры создания, используемые для запроса ACX.
Parameters.Create.Control
Указатель на параметры системной службы, которые используются в качестве дополнительных входных параметров для запроса ACX.
Parameters.Create.ControlCb
Количество в байтах (размер) буфера Create.Control.
Комментарии
Драйвер должен использовать ACX_REQUEST_PARAMETERS только при работе с запросами ACX ввода-вывода. Драйвер должен использовать DDIs запросов WDF для обработки запросов другого типа.
Пример
Ниже приведен пример использования.
ACX_REQUEST_PARAMETERS params;
PAGED_CODE();
//
// Get request parameters.
//
ACX_REQUEST_PARAMETERS_INIT(¶ms);
AcxRequestGetParameters(Request, ¶ms);
ASSERT(params.Type == AcxRequestTypeMethod);
ASSERT(params.Parameters.Method.Verb == AcxMethodVerbSend);
ASSERT(params.Parameters.Method.ArgsCb >= argsCb);
args = (PAPX_CIRCUIT_FACTORY_ADD_CIRCUIT)params.Parameters.Method.Args;
argsCb = params.Parameters.Method.ArgsCb; // use real value.
Требования к ACX
Минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.
Требования
Требование | Значение |
---|---|
Заголовок | acxrequest.h |