ディスプレイ ミニポート ドライバー関数のDriverEntry
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 メンバーを dispmprt.h で定義されているDXGKDDI_INTERFACE_VERSIONに設定します。
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
- DxgkDdiDestroyAllocation
- DxgkDdiDestroyContext
- DxgkDdiDestroyDevice
- DxgkDdiDestroyOverlay
- 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 関数を除くこれらの関数はすべて、フル ディスプレイ ミニポート ドライバーによって実装することもできます。 カーネル モード表示専用ドライバー (KMDOD) の DriverEntry 関数は、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 オペレーティング システムで使用できます。 |
Library |
NtosKrnl.lib |
[DLL] |
NtosKrnl.exe |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示