Compartir a través de


Función KsAllocateDefaultClockEx (ks.h)

La función KsAllocateDefaultClockEx asigna e inicializa la estructura de reloj predeterminada.

Sintaxis

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
);

Parámetros

[out] DefaultClock

Especifica la estructura de reloj compartida asignada por el autor de la llamada. La hora actual se establece en cero y el estado se establece en KSSTATE_STOP. Una vez completada correctamente esta rutina, la estructura indicada por este puntero contendrá una referencia al reloj predeterminado. Los datos devueltos deben tratarse como opacos y reservados para uso del sistema.

[in, optional] Context

Opcionalmente, contiene el contexto de las instalaciones de tiempo alternativas. Debe establecerse si se usa un temporizador o una función de tiempo correlacionada.

[in, optional] SetTimer

Opcionalmente, contiene un puntero a una función KStrSetTimer definida por el controlador que se usará para generar devoluciones de llamada del temporizador DPC basadas en un tiempo de presentación. Si se establece, la función se usará para establecer temporizadores basados en diferencias en el tiempo de presentación actual para generar notificaciones de eventos. Si proporciona una función KStrSetTimer para establecer temporizadores, también debe proporcionar una función KStrCancelTimer correspondiente. Pase NULL en este parámetro si la función KeSetTimerEx predeterminada se usará para aproximarse a la próxima hora de notificación. Normalmente, este parámetro solo se establecería si también se usaba una función KStrCorrelatedTime . La función KStrSetTimer debe tener las mismas características que KeSetTimerEx.

[in, optional] CancelTimer

Opcionalmente, contiene un puntero a una función KStrCancelTimer definida por el controlador para cancelar devoluciones de llamada del temporizador pendientes. Si proporciona una función KStrCancelTimer para cancelar temporizadores, también debe proporcionar una función KStrSetTimer correspondiente. Pase NULL en este parámetro si la función KeCancelTimer predeterminada se va a usar para cancelar temporizadores. La función KStrCancelTimer debe tener las mismas características que KeCancelTimer.

[in, optional] CorrelatedTime

Opcionalmente, contiene un puntero a una función KStrCorrelatedTime definida por el controlador para recuperar la presentación y el tiempo físico de una manera correlacionada. Esto permite al propietario del reloj determinar completamente la hora actual. Pase NULL si la función KeQueryPerformanceCounter predeterminada se usará para regular la progresión del tiempo.

[in, optional] Resolution

Opcionalmente, contiene una granularidad alternativa o un factor de error para el reloj. Esto solo se puede usar si se proporciona un temporizador alternativo o una función de tiempo correlacionada. Se puede especificar una granularidad alternativa si se usa un tiempo correlacionado alternativo; de lo contrario, el elemento structure debe ser cero. Se puede especificar un error alternativo si se usa un temporizador alternativo; de lo contrario, el elemento structure debe ser cero.

[in] Flags

Reservado, establecido en cero.

Valor devuelto

La función KsAllocateDefaultClockEx devuelve STATUS_SUCCESS si se ejecuta correctamente o si se produce un error de memoria si no se realiza correctamente.

Comentarios

El elemento DefaultClock.ReferenceCount interno se inicializa en uno mediante la función KsAllocateDefaultClock . El elemento se incrementa y disminuye a medida que cada DPC de notificación se pone en cola y se completa. Cuando se va a liberar la estructura, el elemento se usa para determinar si el propietario del reloj debe liberar la estructura o si un DPC pendiente debe liberarlo de forma asincrónica.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

KStrCancelTimer

KStrCorrelatedTime

KStrSetTimer

KsAllocateDefaultClock

KsFreeDefaultClock