Partager via


KsAllocateDefaultClockEx, fonction (ks.h)

La fonction KsAllocateDefaultClockEx alloue et initialise la structure d’horloge par défaut.

Syntaxe

KSDDKAPI NTSTATUS KsAllocateDefaultClockEx(
  [out]          PKSDEFAULTCLOCK     *DefaultClock,
  [in, optional] PVOID               Context,
  [in, optional] PFNKSSETTIMER       SetTimer,
  [in, optional] PFNKSCANCELTIMER    CancelTimer,
  [in, optional] PFNKSCORRELATEDTIME CorrelatedTime,
  [in, optional] const KSRESOLUTION  *Resolution,
  [in]           ULONG               Flags
);

Paramètres

[out] DefaultClock

Spécifie la structure d’horloge partagée partagée allouée par l’appelant. L’heure actuelle est définie sur zéro et l’état est défini sur KSSTATE_STOP. Une fois cette routine terminée, la structure indiquée par ce pointeur contient une référence à l’horloge par défaut. Les données retournées doivent être traitées comme opaques et réservées à l’utilisation du système.

[in, optional] Context

Contient éventuellement le contexte des autres installations de temps. Cela doit être défini si un minuteur ou une fonction de temps corrélée est utilisée.

[in, optional] SetTimer

Contient éventuellement un pointeur vers une fonction KStrSetTimer définie par le pilote à utiliser pour générer des rappels de minuteur DPC en fonction d’une heure de présentation. S’il s’agit d’un paramètre défini, la fonction est utilisée pour définir les minuteurs en fonction des deltas de l’heure de présentation actuelle afin de générer des notifications d’événements. Si vous fournissez une fonction KStrSetTimer pour définir des minuteurs, vous devez également fournir une fonction KStrCancelTimer correspondante. Passez NULL dans ce paramètre si la fonction KeSetTimerEx par défaut doit être utilisée pour estimer l’heure de notification suivante. Ce paramètre ne serait normalement défini que si une fonction KStrCorrelatedTime était également utilisée. La fonction KStrSetTimer doit avoir les mêmes caractéristiques que KeSetTimerEx.

[in, optional] CancelTimer

Contient éventuellement un pointeur vers une fonction KStrCancelTimer définie par le pilote pour annuler les rappels du minuteur en attente. Si vous fournissez une fonction KStrCancelTimer pour annuler les minuteurs, vous devez également fournir une fonction KStrSetTimer correspondante. Transmettez NULL dans ce paramètre si la fonction KeCancelTimer par défaut doit être utilisée pour annuler les minuteurs. La fonction KStrCancelTimer doit avoir les mêmes caractéristiques que KeCancelTimer.

[in, optional] CorrelatedTime

Contient éventuellement un pointeur vers une fonction KStrCorrelatedTime définie par le pilote pour récupérer la présentation et le temps physique de manière corrélée. Cela permet au propriétaire de l’horloge de déterminer complètement l’heure actuelle. Passez NULL si la fonction KeQueryPerformanceCounter par défaut doit être utilisée pour réglementer la progression du temps.

[in, optional] Resolution

Contient éventuellement un autre facteur de granularité et/ou d’erreur pour l’horloge. Cela ne peut être utilisé que si une autre minuterie ou une fonction de temps corrélée est fournie. Une autre granularité peut être spécifiée si un autre temps corrélé est utilisé, sinon l’élément de structure doit être égal à zéro. Une autre erreur peut être spécifiée si un minuteur de remplacement est utilisé, sinon l’élément de structure doit être égal à zéro.

[in] Flags

Réservé, défini sur zéro.

Valeur de retour

La fonction KsAllocateDefaultClockEx retourne STATUS_SUCCESS en cas de réussite, ou une erreur de mémoire en cas d’échec.

Remarques

L’élément DefaultClock.ReferenceCount interne est initialisé en un par la fonction KsAllocateDefaultClock. L’élément est incrémenté et décrémenté lorsque chaque DPC de notification est mis en file d’attente et terminé. Lorsque la structure doit être libérée, l’élément est utilisé pour déterminer si le propriétaire de l’horloge doit libérer la structure ou si une DPC en attente doit la libérer de manière asynchrone.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ks.h (include Ks.h)
bibliothèque Ks.lib
IRQL PASSIVE_LEVEL

Voir aussi

KStrCancelTimer

KStrCorrelatedTime

KStrSetTimer

KsAllocateDefaultClock

KsFreeDefaultClock