Condividi tramite


struttura KSCLOCK_DISPATCH (ks.h)

La struttura KSCLOCK_DISPATCH contiene i callback necessari per un pin per implementare un oggetto clock.

Sintassi

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

Members

SetTimer

Facoltativamente, contiene un puntatore a una funzione alternativa da usare per generare callback timer DPC in base a un'ora di presentazione. Se questa impostazione è impostata, questa funzione viene usata per impostare i timer in base ai delta all'ora di presentazione corrente per generare notifiche degli eventi. Se viene specificata una funzione alternativa per impostare i timer, è necessario specificare anche una funzione CancelTimer corrispondente. Questa proprietà è impostata su NULL se la funzione KeSetTimerEx predefinita viene usata per approssimare l'ora di notifica successiva. Questa impostazione viene in genere impostata solo se è in uso una funzione KeSetTimerEx . La funzione deve avere le stesse caratteristiche della funzione predefinita.

La funzione deve essere prototipo come segue:

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

Per informazioni dettagliate sull'implementazione di questa funzione, vedere la documentazione relativa a KeSetTimerEx . Qualsiasi implementazione client deve comportarsi in modo simile.

CancelTimer

Facoltativamente, contiene una funzione alternativa da utilizzare per annullare i callback timer in sospeso. Se viene fornita una funzione alternativa per annullare i timer, è necessario specificare anche una funzione SetTimer corrispondente. Questa proprietà è impostata su NULL se deve essere usata la funzione KeCancelTimer predefinita. La funzione deve avere le stesse caratteristiche della funzione predefinita.

La funzione deve essere prototipo come segue:

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

Per informazioni dettagliate sull'implementazione di questa funzione, vedere la documentazione relativa a KeCancelTimer . Qualsiasi implementazione client deve comportarsi in modo simile.

CorrelatedTime

Puntatore a una funzione per recuperare l'ora dell'orologio corrente e un'ora di sistema correlata come operazione atomica. La funzione deve essere prototipo come segue:

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

L'ora dell'orologio corrente deve essere restituita e l'ora di sistema corrente deve essere inserita in SystemTime.

Resolution

Puntatore a una funzione per specificare la risoluzione dell'orologio. Corrisponde alla proprietà KS KSPROPERTY_CLOCK_RESOLUTION. Questa funzione deve segnalare la granularità in termini di unità di 100 nanosecondi. Per altre informazioni, vedere la documentazione di KS su KSPROPERTY_CLOCK_RESOLUTION.

La funzione deve essere prototipo come segue:

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

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows XP e nei sistemi operativi successivi e in Microsoft DirectX 8.0 e versioni successive.
Intestazione ks.h (include Ks.h)

Vedi anche

KDPC

KSPIN

KSPIN_DISPATCH

KSPROPERTY_CLOCK_RESOLUTION

KSRESOLUTION

KeSetTimerEx