DriverEntry fungsi Driver Miniport Display
Fungsi DriverEntry menyediakan subsistem kernel grafis Microsoft DirectX dengan satu set penunjuk ke fungsi yang diterapkan oleh driver miniport tampilan.
Sintaks
NTSTATUS DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
);
Parameter
DriverObject [in] Penunjuk ke struktur DRIVER_OBJECT yang mewakili driver yang dibentuk oleh pasangan driver (miniport tampilan, port tampilan).
RegistryPath [in] Penunjuk ke struktur UNICODE_STRING yang memasok jalur ke kunci registri driver.
Nilai kembali
DriverEntry memanggil DxgkInitialize dan harus mengembalikan nilai yang dikembalikan oleh DxgkInitialize.
Keterangan
DriverEntry harus melakukan langkah-langkah berikut:
Alokasikan struktur DRIVER_INITIALIZATION_DATA , dan atur anggota Versinya ke DXGKDDI_INTERFACE_VERSION, yang didefinisikan dalam Dispmprt.h.
Isi anggota struktur DRIVER_INITIALIZATION_DATA yang tersisa dengan pointer ke fungsi berikut, yang diimplementasikan oleh driver miniport tampilan.
- 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 (opsional)
- 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
Teruskan DriverObject, RegistryPath, dan struktur DRIVER_INITIALIZATION_DATA yang diisi ke DxgkInitialize.
Mengembalikan nilai yang dikembalikan oleh DxgkInitialize.
Struktur DRIVER_INITIALIZATION_DATA tidak perlu tetap berada dalam memori setelah DriverEntry kembali.
DriverEntry harus dibuat dapat halaman.
Untuk antarmuka driver khusus tampilan mode kernel (KMDOD), struktur KMDDOD_INITIALIZATION_DATA mencantumkan semua fungsi yang dapat diimplementasikan oleh KMDOD. Semua fungsi ini, kecuali untuk fungsi DxgkDdiPresentDisplayOnly , juga dapat diimplementasikan oleh driver miniport layar penuh. Fungsi DriverEntry dari driver display-only mode kernel (KMDOD) memasok penunjuk fungsi ke driver port tampilan dengan mengisi semua anggota struktur KMDDOD_INITIALIZATION_DATA dan kemudian meneruskan struktur tersebut ke fungsi DxgkInitializeDisplayOnlyDriver .
Perhatikan bahwa jika KMDOD tidak mendukung fitur kontrol VSync, itu tidak boleh menerapkan fungsi tertentu—lihat Menghemat Energi dengan Kontrol VSync.
Struktur dan enumerasi berikut juga digunakan dengan driver khusus tampilan mode kernel:
- D3DKMT_MOVE_RECT
- D3DKMT_PRESENT_DISPLAY_ONLY_FLAGS
- DXGK_PRESENT_DISPLAY_ONLY_PROGRESS_ID
- DXGKARG_PRESENT_DISPLAYONLY
- DXGKARGCB_PRESENT_DISPLAYONLY_PROGRESS
Persyaratan
Platform target |
Desktop |
Versi |
Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows. |
Pustaka |
NtosKrnl.lib |
DLL |
NtosKrnl.exe |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk