// acxrequest.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;
View the official Windows Driver Kit DDI referenceNo description available.
The ACX_REQUEST_PARAMETERS structure receives parameters that are associated with an I/O ACX request.
The following parameters are based on the service that is being invoked, such as a property, method or event. Drivers can determine which set to use based on the ACX_ITEM_TYPE.
The three uses of this structure facilitate communications back to existing kernel streaming (KS) types. For more information about KS see KS Properties, Events, and Methods.
For specific information of each of the types, see the following topics.
In addition the following topics may be useful.
Audio Drivers Property Sets KSIDENTIFIER structure (ks.h)
SizeThe size of the structure in bytes.
MajorFunctionThe WDF IRP major function that is used for this request, for example IRP_MJ_DEVICE_CONTROL. For more information about WDF IRP, see IRP Major Function Codes.
MinorFunctionThe WDF IRP minor function that is used for this request. For more information about the Minor Function refer to the associated withe major IRP, for example Plug and Play Minor IRPs, Power Management Minor IRPs and WMI Minor IRPs.
TypeThe ACX_REQUEST_TYPE enumeration describes the type of items that will be sent in the request. Depending on the type specified, a subset of the parameters listed below will be used.
ParametersParameters.PropertyParameters for KS Properties are being used for the ACX request. For more information, see KSPROPERTY structure.
Parameters.Property.SetSpecifies a GUID that identifies a kernel streaming property set.
Parameters.Property.IdSpecifies the member of the property set.
Parameters.Property.VerbAn ACX_PROPERTY_VERB enumeration that describes the property verb.
Parameters.Property.ItemTypeAn ACX_ITEM_TYPE enumeration that describes the ACX item type being the target of this request.
Parameters.Property.ItemIdThe Item ID.
Parameters.Property.ControlA pointer to system service parameters that are used as additional input parameters for the ACX request.
Parameters.Property.ControlCbThe count in bytes (size) of the Property.Control buffer.
Parameters.Property.ValueA pointer to the property value.
Parameters.Property.ValueCbThe count in bytes (size) of the Property.Value buffer.
Parameters.MethodParameters used for a KS Methods request.
Parameters.Method.SetSpecifies a GUID that identifies a kernel streaming method set.
Parameters.Method.IdSpecifies the member of the method set.
Parameters.Method.VerbAn ACX_METHOD_VERB enumeration that describes the item being sent.
Parameters.Method.ItemTypeAn ACX_ITEM_TYPE enumeration that describes the ACX item type being the target of this request.
Parameters.Method.ItemIdThe Item ID of the item being sent.
Parameters.Method.ArgsA pointer to optional arguments for the method.
Parameters.Method.ArgsCbThe count in bytes (size) of the optional arguments for the method.
Parameters.Method.ResultA pointer to the result of the method.
Parameters.Method.ResultCbThe count in bytes (size) of the Method.Result buffer.
Parameters.EventParameters used for KS Events that are being used for the ACX request. For more information, see KSEVENT structure.
Parameters.Event.SetSpecifies a GUID that identifies a kernel streaming event set.
Parameters.Event.IdSpecifies the member of the event set.
Parameters.Event.VerbAn ACX_EVENT_VERB enumeration that describes the item being sent.
Parameters.Event.ItemTypeAn ACX_ITEM_TYPE enumeration that describes the ACX item type being the target of this request.
Parameters.Event.ItemIdThe event Item ID.
Parameters.Event.DataA pointer to the event data.
Parameters.Event.DataCbThe count in bytes (size) of the Event.Data buffer.
Parameters.Event.EventDataAn ACXEVENTDATA Object. For more information about ACX objects, see Summary of ACX Objects.
Parameters.CreateThe structure that contains the create parameters that are being used for the ACX request.
Parameters.Create.ControlA pointer to system service parameters that are used as additional input parameters for the ACX request.
Parameters.Create.ControlCbThe count in bytes (size) of the Create.Control buffer.
Driver must use ACX_REQUEST_PARAMETERS only when working with I/O ACX Requests. Driver must use WDF request DDIs to handle other type of requests.
Example usage is shown below.
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.
Minimum ACX version: 1.0
For more information about ACX versions, see ACX version overview.