ACX_REQUEST_PARAMETERS 構造体 (acxrequest.h)
ACX_REQUEST_PARAMETERS構造体は、I/O ACX 要求に関連付けられているパラメーターを受け取ります。
次のパラメーターは、呼び出されるサービス (プロパティ、メソッド、イベントなど) に基づいています。 ドライバーは、ACX_ITEM_TYPEに基づいて使用するセットを決定できます。
この構造の 3 つの用途により、既存のカーネル ストリーミング (KS) 型への通信が容易になります。 KS の詳細については、「 KS のプロパティ、イベント、およびメソッド」を参照してください。
各型の具体的な情報については、次のトピックを参照してください。
さらに、次のトピックが役立つ場合があります。
オーディオ ドライバープロパティKSIDENTIFIER 構造体 (ks.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;
メンバー
Size
この構造体のサイズ (バイト単位)。
MajorFunction
この要求に使用される WDF IRP のメジャー関数 (たとえば、IRP_MJ_DEVICE_CONTROL)。 WDF IRP の詳細については、「 IRP の主要な関数コード」を参照してください。
MinorFunction
この要求に使用される WDF IRP マイナー関数。 マイナー関数の詳細については、メジャー IRP に関連付けられている を参照してください。たとえば、マイナー IRP、Power Management マイナー IRP、WMI マイナー IRP プラグ アンド プレイします。
Type
ACX_REQUEST_TYPE列挙は、要求で送信されるアイテムの種類を表します。 指定した型に応じて、以下に示すパラメーターのサブセットが使用されます。
Parameters
Parameters.Property
KS プロパティのパラメーターは、ACX 要求に使用されています。 詳細については、「 KSPROPERTY 構造体」を参照してください。
Parameters.Property.Set
カーネル ストリーミング プロパティ セットを識別する GUID を指定します。
Parameters.Property.Id
プロパティ セットのメンバーを指定します。
Parameters.Property.Verb
プロパティ動詞を記述する ACX_PROPERTY_VERB 列挙。
Parameters.Property.ItemType
この要求のターゲットである ACX 項目の種類を記述する ACX_ITEM_TYPE 列挙。
Parameters.Property.ItemId
アイテム ID。
Parameters.Property.Control
ACX 要求の追加の入力パラメーターとして使用されるシステム サービス パラメーターへのポインター。
Parameters.Property.ControlCb
Property.Control バッファーのバイト数 (サイズ)。
Parameters.Property.Value
プロパティ値へのポインター。
Parameters.Property.ValueCb
Property.Value バッファーのバイト数 (サイズ)。
Parameters.Method
KS メソッド要求に使用されるパラメーター。
Parameters.Method.Set
カーネル ストリーミング メソッド セットを識別する GUID を指定します。
Parameters.Method.Id
メソッド セットのメンバーを指定します。
Parameters.Method.Verb
送信されるアイテムを記述する ACX_METHOD_VERB 列挙。
Parameters.Method.ItemType
この要求のターゲットである ACX 項目の種類を記述する ACX_ITEM_TYPE 列挙。
Parameters.Method.ItemId
送信されるアイテムのアイテム ID。
Parameters.Method.Args
メソッドの省略可能な引数へのポインター。
Parameters.Method.ArgsCb
メソッドの省略可能な引数のバイト数 (サイズ)。
Parameters.Method.Result
メソッドの結果へのポインター。
Parameters.Method.ResultCb
Method.Result バッファーのバイト数 (サイズ)。
Parameters.Event
ACX 要求に使用されている KS イベント に使用されるパラメーター。 詳細については、「 KSEVENT 構造体」を参照してください。
Parameters.Event.Set
カーネル ストリーミング イベント セットを識別する GUID を指定します。
Parameters.Event.Id
イベント セットのメンバーを指定します。
Parameters.Event.Verb
送信されるアイテムを記述する ACX_EVENT_VERB 列挙。
Parameters.Event.ItemType
この要求のターゲットである ACX 項目の種類を記述する ACX_ITEM_TYPE 列挙。
Parameters.Event.ItemId
イベント項目 ID。
Parameters.Event.Data
イベント データへのポインター。
Parameters.Event.DataCb
Event.Data バッファーのバイト数 (サイズ)。
Parameters.Event.EventData
ACXEVENTDATA オブジェクト。 ACX オブジェクトの詳細については、「 ACX オブジェクトの概要」を参照してください。
Parameters.Create
ACX 要求に使用される create パラメーターを含む 構造体。
Parameters.Create.Control
ACX 要求の追加の入力パラメーターとして使用されるシステム サービス パラメーターへのポインター。
Parameters.Create.ControlCb
Create.Control バッファーのバイト数 (サイズ)。
注釈
ドライバーは、I/O ACX 要求を操作する場合にのみ、ACX_REQUEST_PARAMETERSを使用する必要があります。 ドライバーは、WDF 要求 DDI を使用して、他の種類の要求を処理する必要があります。
例
使用例を次に示します。
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 の要件
最小 ACX バージョン: 1.0
ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。
要件
要件 | 値 |
---|---|
Header | acxrequest.h |