Функция 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 |