ACX_REQUEST_PARAMETERS-Struktur (acxrequest.h)
Die ACX_REQUEST_PARAMETERS-Struktur empfängt Parameter, die einer E/A-ACX-Anforderung zugeordnet sind.
Die folgenden Parameter basieren auf dem Dienst, der aufgerufen wird, z. B. eine Eigenschaft, eine Methode oder ein Ereignis. Treiber können anhand der ACX_ITEM_TYPE bestimmen, welche Gruppe verwendet werden soll.
Die drei Verwendungen dieser Struktur erleichtern die Kommunikation mit vorhandenen Kernelstreamingtypen (KS). Weitere Informationen zu KS finden Sie unter KS-Eigenschaften, -Ereignisse und -Methoden.
Spezifische Informationen zu den einzelnen Typen finden Sie in den folgenden Themen.
Darüber hinaus können die folgenden Themen nützlich sein.
Audio drivers Property SetsKSIDENTIFIER structure (ks.h)
Syntax
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;
Member
Size
Die Größe dieser Struktur in Byte.
MajorFunction
Die WDF-IRP-Hauptfunktion, die für diese Anforderung verwendet wird, z. B. IRP_MJ_DEVICE_CONTROL. Weitere Informationen zu WDF-IRP finden Sie unter IRP-Hauptfunktionscodes.
MinorFunction
Die WDF-IRP-Nebenfunktion, die für diese Anforderung verwendet wird. Weitere Informationen zur Nebenfunktion finden Sie in der der Haupt-IRP, z. B. Plug & Play Neben-IRPs,Neben-IRPs für die Energieverwaltung und WMI-Neben-IRPs.
Type
Die ACX_REQUEST_TYPE-Enumeration beschreibt den Typ der Elemente, die in der Anforderung gesendet werden. Abhängig vom angegebenen Typ wird eine Teilmenge der unten aufgeführten Parameter verwendet.
Parameters
Parameters.Property
Parameter für KS-Eigenschaften werden für die ACX-Anforderung verwendet. Weitere Informationen finden Sie unter KSPROPERTY-Struktur.
Parameters.Property.Set
Gibt eine GUID an, die einen Kernelstreamingeigenschaftensatz identifiziert.
Parameters.Property.Id
Gibt den Member des Eigenschaftensatzes an.
Parameters.Property.Verb
Eine ACX_PROPERTY_VERB-Enumeration , die das Eigenschaftenverb beschreibt.
Parameters.Property.ItemType
Eine ACX_ITEM_TYPE-Enumeration , die den ACX-Elementtyp beschreibt, der das Ziel dieser Anforderung ist.
Parameters.Property.ItemId
Die Element-ID.
Parameters.Property.Control
Ein Zeiger auf Systemdienstparameter, die als zusätzliche Eingabeparameter für die ACX-Anforderung verwendet werden.
Parameters.Property.ControlCb
Die Anzahl in Bytes (Größe) des Property.Control-Puffers.
Parameters.Property.Value
Ein Zeiger auf den Eigenschaftswert.
Parameters.Property.ValueCb
Die Anzahl in Bytes (Größe) des Property.Value-Puffers.
Parameters.Method
Für eine KS-Methodenanforderung verwendete Parameter.
Parameters.Method.Set
Gibt eine GUID an, die einen Kernelstreamingmethodensatz identifiziert.
Parameters.Method.Id
Gibt den Member des Methodensatzes an.
Parameters.Method.Verb
Eine ACX_METHOD_VERB-Enumeration , die das gesendete Element beschreibt.
Parameters.Method.ItemType
Eine ACX_ITEM_TYPE-Enumeration , die den ACX-Elementtyp beschreibt, der das Ziel dieser Anforderung ist.
Parameters.Method.ItemId
Die Element-ID des gesendeten Elements.
Parameters.Method.Args
Ein Zeiger auf optionale Argumente für die -Methode.
Parameters.Method.ArgsCb
Die Anzahl in Bytes (Größe) der optionalen Argumente für die -Methode.
Parameters.Method.Result
Ein Zeiger auf das Ergebnis der -Methode.
Parameters.Method.ResultCb
Die Anzahl in Bytes (Größe) des Method.Result-Puffers.
Parameters.Event
Parameter, die für KS-Ereignisse verwendet werden, die für die ACX-Anforderung verwendet werden. Weitere Informationen finden Sie unter KSEVENT-Struktur.
Parameters.Event.Set
Gibt eine GUID an, die einen Kernelstreamingereignissatz identifiziert.
Parameters.Event.Id
Gibt den Member des Ereignissatzes an.
Parameters.Event.Verb
Eine ACX_EVENT_VERB-Enumeration , die das gesendete Element beschreibt.
Parameters.Event.ItemType
Eine ACX_ITEM_TYPE-Enumeration , die den ACX-Elementtyp beschreibt, der das Ziel dieser Anforderung ist.
Parameters.Event.ItemId
Die Ereigniselement-ID.
Parameters.Event.Data
Ein Zeiger auf die Ereignisdaten.
Parameters.Event.DataCb
Die Anzahl in Bytes (Größe) des Event.Data-Puffers.
Parameters.Event.EventData
Ein ACXEVENTDATA-Objekt. Weitere Informationen zu ACX-Objekten finden Sie unter Zusammenfassung von ACX-Objekten.
Parameters.Create
Die Struktur, die die Erstellungsparameter enthält, die für die ACX-Anforderung verwendet werden.
Parameters.Create.Control
Ein Zeiger auf Systemdienstparameter, die als zusätzliche Eingabeparameter für die ACX-Anforderung verwendet werden.
Parameters.Create.ControlCb
Die Anzahl in Bytes (Größe) des Create.Control-Puffers.
Hinweise
Der Treiber darf nur ACX_REQUEST_PARAMETERS verwenden, wenn er mit E/A-ACX-Anforderungen arbeitet. Der Treiber muss WDF-Anforderungs-DDIs verwenden, um andere Arten von Anforderungen zu verarbeiten.
Beispiel
Das Beispiel für die Verwendung ist unten dargestellt.
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-Anforderungen
ACX-Mindestversion: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header | acxrequest.h |