次の方法で共有


KSCLOCK_DISPATCH 構造体 (ks.h)

KSCLOCK_DISPATCH構造体には、クロック オブジェクトを実装するためにピンに必要なコールバックが含まれています。

構文

typedef struct _KSCLOCK_DISPATCH {
  PFNKSPINSETTIMER       SetTimer;
  PFNKSPINCANCELTIMER    CancelTimer;
  PFNKSPINCORRELATEDTIME CorrelatedTime;
  PFNKSPINRESOLUTION     Resolution;
} KSCLOCK_DISPATCH, *PKSCLOCK_DISPATCH;

メンバー

SetTimer

必要に応じて、プレゼンテーション時間に基づいて DPC タイマー コールバックを生成する際に使用する代替関数へのポインターが含まれます。 これが設定されている場合、この関数は、イベント通知を生成するために、デルタに基づいて現在のプレゼンテーション時刻にタイマーを設定するために使用されます。 タイマーを設定するために代替関数を指定する場合は、対応する CancelTimer 関数も指定する必要があります。 既定の KeSetTimerEx 関数を使用して次の通知時刻を概算する場合、これは NULL に設定されます。 これは通常、 KeSetTimerEx 関数が使用されている場合にのみ設定されます。 関数には、既定の関数と同じ特性が必要です。

関数は次のようにプロトタイプ化する必要があります。

BOOLEAN SetTimer (IN PKSPIN Pin,
    IN PKTIMER Timer,
    IN LARGE_INTEGER DueTime,
    IN PKDPC Dpc);

この関数の実装の詳細については、 KeSetTimerEx のドキュメントを参照してください。 クライアントの実装は、同様の方法で動作する必要があります。

CancelTimer

必要に応じて、未処理のタイマー コールバックを取り消すために使用する別の関数が含まれます。 タイマーを取り消す代替関数を指定する場合は、対応する SetTimer 関数も指定する必要があります。 既定の KeCancelTimer 関数を使用する場合、これは NULL に設定されます。 関数には、既定の関数と同じ特性が必要です。

関数は次のようにプロトタイプ化する必要があります。

BOOLEAN CancelTimer (IN PKSPIN Pin,
    IN PKTIMER Timer);

この関数の実装の詳細については、 KeCancelTimer のドキュメントを参照してください。 クライアントの実装は、同様の方法で動作する必要があります。

CorrelatedTime

現在のクロック時刻と相関システム時刻をアトミック操作として取得する関数へのポインター。 関数は次のようにプロトタイプ化する必要があります。

LONGLONG CorrelatedTime (IN PKSPIN Pin,
    OUT PLONGLONG SystemTime);

現在のクロック時刻を返し、現在のシステム時刻を SystemTime に配置する必要があります。

Resolution

クロックの解像度を指定する関数へのポインター。 これは、KS プロパティ KSPROPERTY_CLOCK_RESOLUTIONに対応します。 この関数は、100 ナノ秒単位で粒度を報告する必要があります。 詳細については、KSPROPERTY_CLOCK_RESOLUTIONに関する KS ドキュメントを参照してください。

関数は次のようにプロトタイプ化する必要があります。

void Resolution (IN PKSPIN Pin,
        OUT PKSRESOLUTION Resolution);

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムおよび Microsoft DirectX 8.0 以降のバージョンで使用できます。
Header ks.h (Ks.h を含む)

こちらもご覧ください

KDPC

KSPIN

KSPIN_DISPATCH

KSPROPERTY_CLOCK_RESOLUTION

KSRESOLUTION

KeSetTimerEx