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, methode oder ein Ereignis. Treiber können anhand des ACX_ITEM_TYPE bestimmen, welcher Satz verwendet werden soll.
Die drei Verwendungen dieser Struktur erleichtern die Kommunikation mit vorhandenen Kernelstreamingtypen (Kernel Streaming, 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 hilfreich sein.
Audio Drivers-Eigenschaft legtKSIDENTIFIER-Struktur (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;
Angehörige
Size
Die Größe der Struktur in Byte.
MajorFunction
Die hauptfunktion des WDF-IRP, die für diese Anforderung verwendet wird, z. B. IRP_MJ_DEVICE_CONTROL. Weitere Informationen zu WDF IRP finden Sie unter IRP Major Function Codes.
MinorFunction
Die Hilfsfunktion WDF-IRP, die für diese Anforderung verwendet wird. Weitere Informationen zur Nebenfunktion finden Sie im Zusammenhang mit haupt-IRP, z. B. Plug and Play Minor IRPs, Power Management Minor IRPs und WMI Minor IRPs.
Type
Die ACX_REQUEST_TYPE-Aufzählung beschreibt den Typ der Elemente, die in der Anforderung gesendet werden. Je nach angegebenem Typ wird eine Teilmenge der unten aufgeführten Parameter verwendet.
Parameters
Parameters.Property
Parameter für KS Properties werden für die ACX-Anforderung verwendet. Weitere Informationen finden Sie unter KSPROPERTY-Struktur.
Parameters.Property.Set
Gibt eine GUID an, die einen Kernelstreaming-Eigenschaftensatz identifiziert.
Parameters.Property.Id
Gibt das Element 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
Parameter, die für eine KS-Methoden Anforderung verwendet werden.
Parameters.Method.Set
Gibt eine GUID an, die einen Kernelstreamingmethodensatz identifiziert.
Parameters.Method.Id
Gibt das Element 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 Kernel-Streamingereignissatz identifiziert.
Parameters.Event.Id
Gibt das Element 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 Summary of ACX Objects.
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.
Bemerkungen
Der Treiber muss ACX_REQUEST_PARAMETERS nur beim Arbeiten mit E/A-ACX-Anforderungen verwenden. Der Treiber muss WDF-Anforderungs-DDIs verwenden, um andere Arten von Anforderungen zu verarbeiten.
Beispiel
Die Beispielverwendung wird unten gezeigt.
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
Mindestens ACX-Version: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header- | acxrequest.h |