Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. Tras completar 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 el 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 de definida por el controlador KStrSetTimer que se va a usar para generar devoluciones de llamada del temporizador DPC basadas en una hora 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 de KStrSetTimer para establecer temporizadores, también debe proporcionar una función de 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 de KStrCancelTimer definida por el controlador para cancelar devoluciones de llamada de temporizador pendientes. Si proporciona una función de KStrCancelTimer para cancelar temporizadores, también debe proporcionar una función KStrSetTimer correspondiente. Pase NULL en este parámetro si la función de keCancelTimer predeterminada se 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 de 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 de 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.
Observaciones
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 | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | ks.h (incluya Ks.h) |
biblioteca de | Ks.lib |
irQL | PASSIVE_LEVEL |