Функция KsAllocateDefaultClockEx (ks.h)

Функция KsAllocateDefaultClockEx выделяет и инициализирует структуру часов по умолчанию.

Синтаксис

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

Параметры

[out] DefaultClock

Указывает общую структуру часов по умолчанию, выделенную вызывающим объектом. Текущее время равно нулю, а состояние — KSSTATE_STOP. После успешного выполнения этой подпрограммы структура, указанная этим указателем, будет содержать ссылку на часы по умолчанию. Возвращаемые данные должны рассматриваться как непрозрачные и зарезервированы для использования системой.

[in, optional] Context

При необходимости содержит контекст альтернативных временных средств. Его необходимо задать, если используется таймер или коррелированная функция времени.

[in, optional] SetTimer

При необходимости содержит указатель на определяемую драйвером функцию KStrSetTimer , используемую для создания обратных вызовов таймера DPC на основе времени презентации. Если этот параметр задан, функция будет использоваться для задания таймеров на основе изменений текущего времени презентации для создания уведомлений о событиях. Если вы предоставляете функцию KStrSetTimer для задания таймеров, необходимо также предоставить соответствующую функцию KStrCancelTimer . Передайте значение NULL в этом параметре, если функция KeSetTimerEx по умолчанию используется для приближения времени следующего уведомления. Этот параметр обычно устанавливается только в том случае, если также используется функция KStrCorrelatedTime . Функция KStrSetTimer должна иметь те же характеристики, что и KeSetTimerEx.

[in, optional] CancelTimer

При необходимости содержит указатель на определяемую драйвером функцию KStrCancelTimer , используемую для отмены невыполненных обратных вызовов таймера. Если вы предоставляете функцию KStrCancelTimer для отмены таймеров, необходимо также предоставить соответствующую функцию KStrSetTimer . Передайте значение NULL в этом параметре, если функция KeCancelTimer по умолчанию используется для отмены таймеров. Функция KStrCancelTimer должна иметь те же характеристики, что и KeCancelTimer.

[in, optional] CorrelatedTime

При необходимости содержит указатель на определяемую драйвером функцию KStrCorrelatedTime для получения представления и физического времени в коррелятивном порядке. Это позволяет владельцу часов полностью определить текущее время. Передайте значение NULL , если функция KeQueryPerformanceCounter по умолчанию используется для регулирования хода выполнения времени.

[in, optional] Resolution

При необходимости содержит альтернативную степень детализации и (или) коэффициент ошибки для часов. Его можно использовать только в том случае, если предоставляется альтернативный таймер или коррелированная функция времени. Можно указать альтернативную степень детализации, если используется альтернативное коррелированное время, в противном случае элемент структуры должен быть равен нулю. Если используется альтернативный таймер, можно указать альтернативную ошибку , в противном случае элемент структуры должен быть равен нулю.

[in] Flags

Зарезервировано, присвойте значение нулю.

Возвращаемое значение

Функция KsAllocateDefaultClockEx возвращает STATUS_SUCCESS в случае успешного выполнения или ошибку памяти в случае неудачи.

Комментарии

Внутренний элемент DefaultClock.ReferenceCount инициализируется в один с помощью функции KsAllocateDefaultClock . Элемент увеличивается и уменьшается по мере того, как каждый DPC уведомления помещается в очередь и завершается. При освобождении структуры элемент используется для определения того, должен ли владелец часов освобождать структуру или если ожидающий DPC должен освобождать ее асинхронно.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL PASSIVE_LEVEL

См. также раздел

KStrCancelTimer

KStrCorrelatedTime

KStrSetTimer

KsAllocateDefaultClock

KsFreeDefaultClock