структура ACX_REQUEST_PARAMETERS (acxrequest.h)
Структура ACX_REQUEST_PARAMETERS получает параметры, связанные с запросом ACX ввода-вывода.
Следующие параметры основаны на вызываемой службе, например свойстве, методе или событии. Драйверы могут определить, какой набор используется на основе ACX_ITEM_TYPE.
Три использования этой структуры упрощают обмен данными с существующими типами потоковой передачи ядра (KS). Дополнительные сведения о KS см. в свойствах, событиях и методах KS.
Дополнительные сведения о каждом из типов см. в следующих разделах.
- свойства 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, например дополнительныхirPs plug and Play, Power Management Minor IRPs и дополнительных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 |