AcxStreamCreate 関数 (acxstreams.h)

AcxStreamCreate は、ストリーミング動作を制御するために使用できる ACX Streamを作成します。

構文

NTSTATUS AcxStreamCreate(
  WDFDEVICE              Device,
  ACXCIRCUIT             Circuit,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACXSTREAM_INIT        *Config,
  ACXSTREAM              *Stream
);

パラメーター

Device

指定した ACXCIRCUIT とそのストリームに関連付けられている WDFDEVICE オブジェクト (「フレームワーク オブジェクトの概要」で説明)。

Circuit

このストリームが関連付けられる ACXCIRCUIT。

Attributes

さまざまなオブジェクトの値を設定するために使用される WDF_OBJECT_ATTRIBUTES を使用して定義された追加の属性:コールバック、コンテキスト型のクリーンアップと破棄、および親オブジェクトの指定。

Config

ストリームの初期化パラメーターを定義するACXSTREAM_INIT構造体。 ACX オブジェクトの詳細については、「 ACX - ACX オブジェクトの概要」を参照してください。

Stream

新しい ACXSTREAM オブジェクトへのハンドルを受け取る場所へのポインター。

ACXSTREAM オブジェクトは、回線によって作成されたオーディオ ストリームを表します。 詳細については、「 ACX - ACX オブジェクトの概要」を参照してください。

戻り値

STATUS_SUCCESS呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。

注釈

ACXSTREAM が作成されると、ドライバーは 1 つ以上の ACX 要素をストリームに追加できます。 既定では、ACX 要素はアセンブリの同じ順序で接続されます。 ACXSTREAM は、1 つの ACXCIRCUIT にのみ関連付けられます。 ACX では、非ストリーミング回線で使用される基本的な ACX ストリーム オブジェクトと、ストリーミング回線で使用される ACX RealTime (RT) ストリーム オブジェクトの 2 種類のストリームがサポートされています。

AcxStreamCreate によって作成された ACXSTREAM を使用すると、ドライバーはストリームに関連付けられているコントロール シグナルと状態の変更を受信できます。 ただし、ACXSTREAM では、OS 間でのオーディオ データのストリーミングはサポートされません。 ストリーミング オーディオ データをサポートするドライバーでは、AcxRtStreamCreate を使用して、ストリーミングをサポートする ACXSTREAM を作成する必要があります。 複数のドライバーにまたがる複数の ACXCIRCUIT から作成されたエンドポイントの場合、ストリーミング ピンをホストする ACXCIRCUIT は ACX RT Streamを作成し、エンドポイント内の他の ACXCIRCUIT は RT 以外の ACX ストリームを作成します。

ストリーム作成の例を次に示します。

    //
    // Init streaming callbacks.
    //
    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPrepareHardware     = EvtStreamPrepareHardware;
    streamCallbacks.EvtAcxStreamReleaseHardware     = EvtStreamReleaseHardware;
    streamCallbacks.EvtAcxStreamRun                 = EvtStreamRun;
    streamCallbacks.EvtAcxStreamPause               = EvtStreamPause;
    streamCallbacks.EvtAcxStreamAssignDrmContentId  = EvtStreamAssignDrmContentId;

    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);

    //
    // Create the stream.
    //
    WDF_OBJECT_ATTRIBUTES attributes;
    ACXSTREAM stream;
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, STREAM_CONTEXT);
    attributes.EvtCleanupCallback = EvtStreamContextCleanup;
    attributes.EvtDestroyCallback = EvtStreamDestroy;
    status = AcxStreamCreate(Device, Circuit, &attributes, &StreamInit, &stream);

ACX の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。

要件

要件
Header acxstreams.h
IRQL PASSIVE_LEVEL

こちらもご覧ください