структура DXGK_TIMED_OPERATION_INTERFACE (dispmprt.h)

Структура DXGK_TIMED_OPERATION_INTERFACE содержит указатели на функции в интерфейсе timed Operation Interface, который реализуется драйвером порта отображения.

Синтаксис

typedef struct _DXGK_TIMED_OPERATION_INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
  NTSTATUS((DXGK_TIMED_OPERATION *Op, const LARGE_INTEGER *Timeout,BOOLEAN OsHandled)              * )TimedOperationStart;
  NTSTATUS((DXGK_TIMED_OPERATION *Op,KPROCESSOR_MODE WaitMode,BOOLEAN Alertable, const LARGE_INTEGER *Interval)              * )TimedOperationDelay;
  NTSTATUS((DXGK_TIMED_OPERATION *Op,PVOID Object,KWAIT_REASON WaitReason,KPROCESSOR_MODE WaitMode,BOOLEAN Alertable, const LARGE_INTEGER *Timeout)              * )TimedOperationWaitForSingleObject;
} DXGK_TIMED_OPERATION_INTERFACE, *PDXGK_TIMED_OPERATION_INTERFACE;

Члены

Size

Размер данной структуры (в байтах).

Version

Номер версии интерфейса timed Operation Interface. Константы номеров версий определяются в Dispmprt.h (например, DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).

Context

Указатель на контекст, предоставляемый драйвером порта отображения.

InterfaceReference

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

InterfaceDereference

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

TimedOperationStart

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

Драйвер должен предустановить элемент Sizeструктуры DXGK_TIMED_OPERATION, на которую указывает параметр Op, значение sizeof(DXGK_TIMED_OPERATION). Ниже приведены описания параметров timedOperationStart .

  • [out] Операция — это указатель на структуру DXGK_TIMED_OPERATION , которая описывает время запуска или перезапуска операции.

  • [in] Время ожидания — это указатель на значение времени ожидания в единицах 100 наносекунд, указывающее относительное время, отведенное для завершения операции с заданным временем.

  • [in] OsHandled — это логическое значение, указывающее, обрабатывает ли операционная система условие времени ожидания. Значение TRUE указывает, что драйвер не имеет разумного способа обработки условия времени ожидания и позволяет операционной системе обрабатывать условие времени ожидания; FALSE указывает, что драйвер обрабатывает условие времени ожидания.

TimedOperationDelay

Функция TimedOperationDelay помещает текущий поток в состояние ожидания с оповещением или неоперированием в течение заданного интервала с учетом заданного времени ожидания операции. Ниже приведены описания параметров timedOperationDelay .

  • [вход/выход] Op — это указатель на структуру DXGK_TIMED_OPERATION , которая описывает время задержки операции. Эта повременная операция была запущена вызовом функции TimedOperationStart .

  • [in] WaitMode — это KPROCESSOR_MODE типизированное значение, указывающее режим процессора, в котором ожидается драйвер. Значением может быть KernelMode или UserMode. Драйверы более низкого уровня в стеке должны указывать KernelMode.

  • [in] Alertable — это логическое значение, указывающее, является ли ожидание оповещенным. Значение TRUE указывает, что ожидание может быть оповещено; FALSE указывает, что ожидание не является допустимым. Драйверы более низкого уровня в стеке должны указывать значение FALSE.

  • [in] Interval — это указатель на переменную, содержащую относительное время в единицах 100 наносекунд для задержки. Знак значения игнорируется.

TimedOperationWaitForSingleObject

Функция TimedOperationWaitForSingleObject переводит текущий поток в состояние ожидания, пока объект диспетчера не перейдет в состояние сигнала или при необходимости до истечения времени ожидания или до истечения времени ожидания заданной операции. Ниже приведены описания параметров timedOperationWaitForSingleObject .

  • [in] Операция — это указатель на структуру DXGK_TIMED_OPERATION , которая описывает операцию, заданную по времени для преобразования в состояние ожидания. Эта повременная операция была запущена вызовом функции TimedOperationStart .

  • Объект — это указатель на инициализированный объект диспетчера, для который вызывающий объект предоставляет хранилище. Объект диспетчера может быть событием, мьютексом, семафором, потоком или таймером.

  • WaitReason — это KWAIT_REASON типизированное значение, указывающее причину ожидания. Драйвер должен задать это значение Executive или, если драйвер выполняет работу от имени пользователя и выполняется в контексте потока пользователя, — Значение UserRequest.

  • WaitMode — это KPROCESSOR_MODE типизированное значение, указывающее режим процессора, в котором ожидается драйвер. Значением может быть KernelMode или UserMode. Драйверы низкого и среднего уровня должны указывать KernelMode. Если объект, на который указывает параметр Object , является мьютексом, вызывающий объект должен указать KernelMode.

  • Alertable — это логическое значение, указывающее, является ли ожидание оповещенным. Значение TRUE указывает, что ожидание может быть оповещено; FALSE указывает, что ожидание не является допустимым.

  • Время ожидания — это указатель на переменную, содержащую относительное время (в единицах 100 наносекунд) для завершения ожидания. Знак значения игнорируется.

Комментарии

Драйвер мини-порта дисплея предоставляет элементы Size и Version этой структуры, а затем вызывает DxgkCbQueryServices, который заполняет остальные элементы этой структуры.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть dispmprt.h (включая Dispmprt.h)

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

DXGK_TIMED_OPERATION

DxgkCbQueryServices