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(&params);
    AcxRequestGetParameters(Request, &params);

    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

Weitere Informationen