Freigeben über


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(&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

Mindestens ACX-Version: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header- acxrequest.h

Siehe auch