DriverEntry of Display Miniport Driver function
Функция DriverEntry предоставляет подсистеме графического ядра Microsoft DirectX набор указателей на функции, реализованные драйвером мини-порта дисплея.
Синтаксис
NTSTATUS DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
);
Параметры
DriverObject [in] — указатель на структуру DRIVER_OBJECT , представляющую драйвер, сформированный парой драйверов (мини-порт дисплея, порт дисплея).
RegistryPath [in] Указатель на структуру UNICODE_STRING , которая предоставляет путь к разделу реестра драйвера.
Возвращаемое значение
DriverEntry вызывает DxgkInitialize и должен возвращать значение, возвращаемое DxgkInitialize.
Комментарии
DriverEntry должен выполнить следующие действия:
Выделите структуру DRIVER_INITIALIZATION_DATA и задайте для ее члена Version значение DXGKDDI_INTERFACE_VERSION, которое определено в Dispmprt.h.
Заполните остальные элементы структуры DRIVER_INITIALIZATION_DATA указателями на следующие функции, реализованные драйвером мини-порта дисплея.
- DxgkDdiAcquireSwizzlingRange
- DxgkDdiAddDevice
- DxgkDdiBuildPagingBuffer
- DxgkDdiCalibrateGpuClock (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
- DxgkDdiCancelCommand (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiCheckMultiPlaneOverlaySupport (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo
- DxgkDdiCommitVidPn
- DxgkDdiControlEtwLogging
- DxgkDdiControlInterrupt
- DxgkDdiCreateAllocation
- DxgkDdiCreateContext
- DxgkDdiCreateDevice
- DxgkDdiCreateOverlay
- DxgkDdiDescribeAllocation
- DxgkDdiDelocationAllocation
- DxgkDdiDetext
- DxgkDdiDeкистратьDevice
- DxgkDdiDeкистратьOverlay
- DxgkDdiDispatchIoRequest
- DxgkDdiDpcRoutine
- DxgkDdiEnumVidPnCofuncModality
- DxgkDdiEscape
- DxgkDdiFlipOverlay
- DxgkDdiFormatHistoryBuffer (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiGetChildContainerId (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiGetNodeMetadata (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiGetScanLine
- DxgkDdiGetStandardAllocationDriverData
- DxgkDdiInterruptRoutine
- DxgkDdiIsSupportedVidPn
- DxgkDdiLinkDevice
- DxgkDdiNotifyAcpiEvent (необязательно)
- DxgkDdiNotifySurpriseRemoval (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiOpenAllocation
- DxgkDdiPatch
- DxgkDdiPowerRuntimeControlRequest (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiPreemptCommand
- DxgkDdiPresent
- DxgkDdiQueryAdapterInfo
- DxgkDdiQueryChildRelations
- DxgkDdiQueryChildStatus
- DxgkDdiQueryCurrentFence
- DxgkDdiQueryDependentEngineGroup (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiQueryDeviceDescriptor
- DxgkDdiQueryEngineStatus (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiQueryInterface
- DxgkDdiQueryVidPnHWCapability (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7)
- DxgkDdiRecommendFunctionalVidPn
- DxgkDdiRecommendMonitorModes
- DxgkDdiRecommendVidPnTopology
- DxgkDdiReleaseSwizzlingRange
- DxgkDdiRemoveDevice
- DxgkDdiRender
- DxgkDdiRenderKm (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7)
- DxgkDdiResetDevice
- DxgkDdiResetEngine (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiResetFromTimeout
- DxgkDdiRestartFromTimeout
- DxgkDdiSetDisplayPrivateDriverFormat
- DxgkDdiSetPalette
- DxgkDdiSetPointerPosition
- DxgkDdiSetPointerShape
- DxgkDdiSetPowerComponentFState (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiSetPowerState
- DxgkDdiSetVidPnSourceAddress
- DxgkDdiSetVidPnSourceVisibility
- DxgkDdiStartDevice
- DxgkDdiStopCapture
- DxgkDdiStopDevice
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiSubmitCommand
- DxgkDdiSystemDisplayEnable (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiSystemDisplayWrite (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
- DxgkDdiUnload
- DxgkDdiUpdateActiveVidPnPresentPath
- DxgkDdiUpdateOverlay
Передайте DriverObject, RegistryPath и заполненную структуру DRIVER_INITIALIZATION_DATA в DxgkInitialize.
Возвращает значение, возвращенное DxgkInitialize.
Структура DRIVER_INITIALIZATION_DATA не должна оставаться в памяти после возврата DriverEntry .
DriverEntry следует сделать страничной.
Для интерфейса драйвера только для режима ядра (KMDOD) в структуре KMDDOD_INITIALIZATION_DATA перечислены все функции, которые могут быть реализованы KMDOD. Все эти функции, за исключением функции DxgkDdiPresentDisplayOnly , также могут быть реализованы драйвером мини-порта для полного отображения. Функция DriverEntry драйвера только для отображения в режиме ядра (KMDOD) предоставляет указатели функций на драйвер порта отображения, заполняя все члены структуры KMDDOD_INITIALIZATION_DATA, а затем передавая эту структуру функции DxgkInitializeDisplayOnlyDriver .
Обратите внимание, что если KMDOD не поддерживает функцию управления VSync, он не должен реализовывать определенные функции. См. раздел Экономия энергии с помощью управления VSync.
Следующие структуры и перечисления также используются с драйверами только для отображения в режиме ядра:
- D3DKMT_MOVE_RECT
- D3DKMT_PRESENT_DISPLAY_ONLY_FLAGS
- DXGK_PRESENT_DISPLAY_ONLY_PROGRESS_ID
- DXGKARG_PRESENT_DISPLAYONLY
- DXGKARGCB_PRESENT_DISPLAYONLY_PROGRESS
Требования
Целевая платформа |
Персональный компьютер |
Версия |
Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Библиотека |
NtosKrnl.lib |
DLL |
NtosKrnl.exe |
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по