次の方法で共有


AcxRtStreamNotifyPacketComplete 関数 (acxstreams.h)

ドライバーは、パケットが完了したときに AcxRtStreamNotifyPacketComplete を呼び出します。 クライアントのパフォーマンスを向上させるために、パケットの完了時間と 0 ベースのパケット インデックスが含まれています。 ACX フレームワークは、ストリームに関連付けられているすべての通知イベントを設定します。

構文

NTSTATUS AcxRtStreamNotifyPacketComplete(
  ACXSTREAM Stream,
  ULONGLONG CompletedPacket,
  ULONGLONG QPCCompletion
);

パラメーター

Stream

既存の ACXSTREAM オブジェクト。 ACXSTREAM オブジェクトは、回線によって作成されたオーディオ ストリームを表します。 ストリームは、親回線の要素に基づいて作成された要素の一覧で構成されます。

CompletedPacket

完了したばかりのパケットを示す 0 から始まるパケット インデックス。

QPCCompletion

KeQueryPerformanceCounter によって返されるパケットの完了時間。 この値は、実際のハードウェアの完了にできるだけ近い必要があります (たとえば、ドライバーは割り込みサービス ルーチンから KeQueryPerformanceCounter を呼び出すことができます)。

戻り値

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

注釈

AcxRtStreamNotifyPacketComplete は、DISPATCH_LEVEL以下で呼び出す必要があります。

使用例を次に示します。

completedPacket = (ULONG)InterlockedIncrement((LONG*)&m_CurrentPacket) - 1;

InterlockedExchange64(&m_LastPacketStart.QuadPart, m_CurrentPacketStart.QuadPart);
InterlockedExchange64(&m_CurrentPacketStart.QuadPart, QPC.QuadPart);

// Tell ACX we've completed the packet.
(void)AcxRtStreamNotifyPacketComplete(m_Stream, completedPacket, QPC.QuadPart);

ACX の要件

最小 ACX バージョン: 1.0

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

要件

要件
Header acxstreams.h
IRQL <= DISPATCH_LEVEL

こちらもご覧ください