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 を含む) |