Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, yalnızca işlem sürücüsü olarak da adlandırılan Bir Microsoft Yalnızca İşlem Sürücüsü (MCDM) sürücüsünün çekirdek modu sürücüsü (KMD) bölümünün nasıl yazıldığına ilişkin yönergeler sağlanır.
Ayrıca aşağıdaki makalelere bakın:
Sürücü INF dosyası
MCDM cihazları, sürücünün INF dosyasında belirtilmesi gereken ComputeAccelerator sınıfına aittir:
[Version]
...
Class=ComputeAccelerator
ClassGuid={F01A9D53-3FF6-48D2-9F97-C8A7004BE10C}
...
Sürücü başlatma
Bir MCDM sürücüsünün aşağıdaki adımları gerçekleştiren bir DriverEntry işlevi sağlaması gerekir:
- DRIVER_INITIALIZATION_DATA yapısını ayırın ve başlatın. Ayrıntılar için bkz . Sürücü işlevi destek gereksinimleri .
- DxgkInitialize'ı başlatılan yapıyla çağırın.
Sürücü işlevi destek gereksinimleri
MCDM sürücüsü , DRIVER_INITIALIZATION_DATA yapısında uyguladığı işlevleri kullanıma sunar.
Gereken en düşük destek
En azından bir MCDM sürücüsünün aşağıdaki cihaz sürücüsü arabirimi (DDI) işlevlerini sağlaması gerekir:
- DxgkDdiAddDevice
- DxgkDdiBuildPagingBuffer
- DxgkDdiCalibrateGpuClock
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo
- DxgkDdiCreateAllocation
- DxgkDdiCreateContext
- DxgkDdiCreateDevice
- DxgkDdiDescribeAllocation
- DxgkDdiDestroyAllocation
- DxgkDdiDestroyContext
- DxgkDdiDestroyDevice
- DxgkDdiDpcRoutine
- DxgkDdiFormatHistoryBuffer
- DxgkDdiGetNodeMetadata
- DxgkDdiGetStandardAllocationDriverData
- DxgkDdiInterruptRoutine
- DxgkDdiOpenAllocation
- DxgkDdiPreemptCommand
- DxgkDdiQueryAdapterInfo (daha fazla bilgi için bkz . DxgkDdiQueryAdapterInfo gereksinimleri)
- DxgkDdiQueryDependentEngineGroup
- DxgkDdiQueryDeviceDescriptor
- DxgkDdiQueryEngineStatus
- DxgkDdiRemoveDevice
- DxgkDdiResetDevice
- DxgkDdiResetEngine
- DxgkDdiResetFromTimeout
- DxgkDdiRestartFromTimeout
- DxgkDdiSetPowerState
- DxgkDdiSetStablePowerState
- DxgkDdiSetVirtualMachineData
- DxgkDdiStartDevice
- DxgkDdiStopDevice
- DxgkDdiUnload
- DxgkDdiQueryChildStatus
- DxgkDdiQueryChildRelations
- DxgkDdiQueryConnectionChange
- DxgkDdiQueryDeviceDescriptor
CPU ana bilgisayar diyafram desteği
CPU ana bilgisayar diyaframı destekleniyorsa, aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Daha fazla bilgi için bkz. CPU ana bilgisayar diyaframı.
Fiziksel adresleme desteği
Fiziksel adresleme kullanılıyorsa, aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
GPU sanal adresleme desteği
GPU sanal adresleme kullanılıyorsa, aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
- DxgkDdiCreateProcess
- DxgkDdiDestroyProcess
- DxgkDdiGetRootPageTableSize
- DxgkDdiSetRootPageTable
- DxgkDdiSubmitCommandVirtual
IoMmu yalıtım desteği
IoMmu yalıtımı destekleniyorsa, aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Bağlantı bağdaştırıcısı desteği
İsteğe bağlı bağlantı bağdaştırıcısı desteği için aşağıdaki işleve yönelik bir işaretçi de sağlanmalıdır:
Güç yönetimi desteği
İsteğe bağlı güç yönetimi desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
- DxgkDdiSetPowerComponentFState; bildirilen bileşenler F durumlarını destekliyorsa gereklidir.
- DxgkDdiPowerRuntimeControlRequest
- DxgkDdiPowerRuntimeSetDeviceHandle
Modern Bekleme veya Bağlı Bekleme sistemlerinde güç yönetimi desteği gereklidir.
Daha fazla bilgi için bkz. boşta durumların GPU güç yönetimi ve etkin güç
Sürpriz kaldırma desteği
İsteğe bağlı sürpriz kaldırma desteği için aşağıdaki işlevlerin işaretçileri de sağlanmalıdır:
Desteği iptal et
İsteğe bağlı iptal desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Arabirim desteği
İsteğe bağlı arabirim desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Donanım zamanlama desteği
İsteğe bağlı donanım zamanlama desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
- DxgkDdiCreateHwContext
- DxgkDdiCreateHwQueue
- DxgkDdiDestroyHwContext
- DxgkDdiDestroyHwQueue
- DxgkDdiPresentToHwQueue
- [DxgkDdiResetHwEngine
- DxgkDdiResumeContext
- DxgkDdiResumeHwEngine
- DxgkDdiSetContextSchedulingProperties
- DxgkDdiSetSchedulingLogBuffer
- DxgkDdiSetupPriorityBands
- DxgkDdiSignalMonitoredFence
- DxgkDdiSubmitCommandToHwQueue
- DxgkDdiSuspendContext
- DxgkDdiSwitchToHwContextList
- DxgkDdiUpdateHwContextState
UpdateAllocationProperty desteği
İsteğe bağlı UpdateAllocationProperty desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Kaçış desteği
İsteğe bağlı kaçış desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Windows için Olay İzleme desteği
İsteğe bağlı ETW desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Çocuk cihaz desteği
İsteğe bağlı alt cihaz desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Güç tüketimi raporlama desteği
İsteğe bağlı güç tüketimi raporlama desteği için aşağıdaki işlevlere yönelik işaretçiler de sağlanmalıdır:
Komut gönderme doğrulaması
İsteğe bağlı komut gönderimi doğrulaması için aşağıdaki işlevlerin işaretçileri de sağlanmalıdır:
IOCTL desteği
İsteğe bağlı IOCTL desteği için aşağıdaki işleve yönelik bir işaretçi sağlanabilir:
Yasaklanmış işlevler
Bir MCDM sürücüsünde aşağıdaki DDI'ler sağlanmamalıdır:
- DxgkDdiAcquireSwizzlingRange
- DxgkDdiCheckMultiPlaneOverlaySupport
- DxgkDdiCheckMultiPlaneOverlaySupport2
- DxgkDdiCheckMultiPlaneOverlaySupport3
- DxgkDdiCommitVidPn
- DxgkDdiControlDiagnosticReporting
- DxgkDdiControlInterrupt
- DxgkDdiControlInterrupt2
- DxgkDdiControlModeBehavior
- DxgkDdiCreateOverlay
- DxgkDdiCreatePeriodicFrameNotification
- DxgkDdiCreateProtectedSession
- DxgkDdiDestroyOverlay
- DxgkDdiPeriyodikÇerçeveBildiriminiYokEt
- DxgkDdiDestroyProtectedSession
- DxgkDdiDisplayDetectControl
- DxgkDdiEnumVidPnCofuncModality
- DxgkDdiExchangePreStartInfo
- DxgkDdiFlipOverlay
- DxgkDdiGetMultiPlaneOverlayCaps
- DxgkDdiGetPostCompositionCaps
- DxgkDdiGetScanLine
- DxgkDdiIsSupportedVidPn
- DxgkDdiNotifyAcpiEvent
- DxgkDdiNotifyFocusPresent
- DxgkDdiPostMultiPlaneOverlayPresent
- DxgkDdiPresent
- DxgkDdiQueryConnectionChange
- DxgkDdiQueryCurrentFence
WDDM 1.x işlevleri
Aşağıdaki işlevler yalnızca WDDM 1.x sürücüleri için kullanılır:
- DxgkDdiQueryDiagnosticTypesSupport
- DxgkDdiQueryVidPnHWCapability
- DxgkDdiRecommendFunctionalVidPn
- DxgkDdiRecommendMonitorModes
- DxgkDdiRecommendVidPnTopology
- DxgkDdiReleaseSwizzlingRange
- DxgkDdiRenderGdi
- DxgkDdiRenderKm
- DxgkDdiSetDisplayPrivateDriverFormat
- DxgkDdiSetPalette
- DxgkDdiSetPointerPosition
- DxgkDdiSetPointerShape
- DxgkDdiSetPowerPState (sürücü herhangi bir P-durumu güç bileşenini bildirmemelidir)
- DxgkDdiSetTargetAdjustedColorimetry
- DxgkDdiSetTargetAdjustedColorimetry2
- DxgkDdiSetTargetAnalogCopyProtection
- DxgkDdiSetTargetContentType
- DxgkDdiSetTargetGamma
- DxgkDdiSetTimingsFromVidPn
- DxgkDdiSetVideoProtectedRegion
- DxgkDdiSetVidPnSourceAddress
- DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay
- DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2
- DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay3
- DxgkDdiSetVidPnSourceVisibility
- DxgkDdiStopCapture
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership fonksiyonunu durdur ve ekran sonrası sahipliğini bırak
- DxgkDdiSubmitRender
- DxgkDdiSystemDisplayEnable
- DxgkDdiSystemDisplayWrite
- DxgkDdiUpdateActiveVidPnPresentPath (Aktif VidPn Sunum Yolunu Güncelle)
- DxgkDdiUpdateMonitorLinkInfo
- DxgkDdiUpdateOverlay
Bağdaştırıcı bilgisine yönelik gereksinimleri sorgulama
Daha önce belirtildiği gibi, yalnızca hesaplama sürücüsü DxgkDdiQueryAdapterInfo'yı desteklemelidir.
Aşağıdaki DXGK_QUERYADAPTERINFOTYPE türleri desteklenmelidir:
- DXGKQAITYPE_DRIVERCAPS
- DXGKQAITYPE_NUMPOWERCOMPONENTS
- DXGKQAITYPE_HISTORYBUFFERPRECISION
- DXGKQAITYPE_QUERYSEGMENT4 (daha fazla bilgi için bkz. GPU adres alanını açıklamak için bellek kesimlerini kullanma)
Aşağıdaki DXGK_QUERYADAPTERINFOTYPE türleri için destek isteğe bağlıdır:
- DXGK_ADAPTER_PERFDATA
- DXGK_ADAPTER_PERFDATACAPS
- DXGKQAITYPE_UMDRIVERPRIVATE
- DXGKQAITYPE_PHYSICALADAPTERCAPS
- DXGK_NODE_PERFDATA
- DXGK_GPUVERSION
Bir veya daha fazla geçersiz bellek bloğu bildirildiyse, aşağıdaki DXGK_QUERYADAPTERINFOTYPE desteklenmelidir:
- DXGKQAITYPE_SEGMENTMEMORYSTATE
GPUVA destekleniyorsa aşağıdaki DXGK_QUERYADAPTERINFOTYPE desteklenmelidir:
- DXGKQAITYPE_GPUMMUCAPS
- DXGKQAITYPE_PAGETABLELEVELDESC
Bildirilen güç bileşeni sayısı sıfırdan büyükse aşağıdaki DXGK_QUERYADAPTERINFOTYPE desteklenmelidir:
- DXGKQAITYPE_POWERCOMPONENTINFO
IoMmuSecureModeSupported üst sınırı
- DXGKQAITYPE_FRAMEBUFFERSAVESIZE
- DXGKQAITYPE_HARDWARERESERVEDRANGES
Aşağıdaki DXGK_QUERYADAPTERINFOTYPE desteklenmemelidir:
- DXGKQAITYPE_CİHAZ_TİPİ_KAPAKLARI
- DXGKQAITIPI_GÖRÜNTÜ_SÜRÜCÜKABİLİYETLERİ_UZANTISI
- DXGKQAITYPE_DISPLAYID_AÇIKLAYICI
- DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR
- DXGKQAITIPI_ENTEGRE_EDILMIŞ_EKRAN_TANIMLAYICI2
- DXGKQAITYPE_POWERCOMPONENTPSTATEINFO
- DXGKQAITYPE_PREFERREDGPUNODE
- DXGKQAITYPE_QUERYCOLORIMETRYOVERRIDES
- DXGKQAITYPE_QUERYSEGMENT
- DXGKQAITYPE_QUERYSEGMENT2
- DXGKQAITYPE_QUERYSEGMENT3
- DXGKQAITYPE_UEFIFRAMEBUFFERRANGES
Sürücü özelliği gereksinimleri
Aşağıdaki DXGK_DRIVERCAPS yapı üyeleri uygun değerlere ayarlanmalıdır:
| Üye | Notlar |
|---|---|
| En Yüksek Kabul Edilebilir Adres | Bu adres, sürücü yüklemesi sırasında sistem belleğinin en yüksek fiziksel adresinden küçükse yük başarısız olur. |
| KesmeMesajNumarası | Uygun şekilde ayarlayın. |
| SchedulingCaps | Bkz. Zamanlama Yetkinlikleri gereksinimleri. |
| MemoryManagementCaps | Bkz . MemoryManagementCaps gereksinimleri. |
| GpuEngineTopology | NbAsymetricProcessingNodes desteklenen GPU motorlarının sayısına ayarlayın. |
| WDDMVersion | DXGKDDI_WDDMv2_6 veya üzeri olarak ayarlanmalıdır. |
| PreemptionCaps | GraphicsPreemptionGranularity değerini donanım tarafından desteklenen düzeye uygun şekilde ayarlayın. En azından, zamanlanmış ancak henüz çalışmaya başlamamış kuyruktan alınacak paketler için paket düzeyinde önceliklendirmeyi desteklemeye çalışmalısınız. ComputePreemptionGranularity değerini D3DKMDT_COMPUTE_PREEMPTION_NONE dışında bir değere ayarlayın. |
| SupportPerEngineTDR | TRUE olarak ayarlanmalıdır. Bkz. Windows 8 ve sonraki sürümlerde TDR Değişiklikleri. |
| Çalışma Zamanı Güç Yönetimini Destekle | Uygun şekilde ayarlayın. Ayrıntılı bilgi için Boşta durumlar ve etkin güç için GPU güç yönetimi konusuna bakın. |
| Uykuda Beklenmedik Kaldırmayı Destekle | Hazırda bekleme modundayken sürücü sürpriz kaldırmayı destekliyorsa TRUE olarak ayarlayın; aksi takdirde uygun şekilde ayarlayın. Bkz. DXGKDDI_NOTIFY_SURPRISE_REMOVAL. |
| HybridDiscrete | false olarak ayarlanmalıdır. |
| HybridIntegrated | false olarak ayarlanmalıdır. |
| DahiliGpuSanalAdresAralığıBaşlat | Uygun şekilde ayarlayın. GpuVA desteklenmiyorsa sıfır olarak ayarlayın. GpuVA destekleniyorsa bu değer, işletim sistemi iç kullanımı için iç kaynaklar tahsis edilirken işletim sisteminin kullanacağı VA aralığının başlangıcını belirtir. |
| InternalGpuVirtualAddressRangeEnd | Uygun şekilde ayarlayın. GpuVA desteklenmiyorsa sıfır olarak ayarlayın. GpuVA destekleniyorsa, bu değer işletim sistemi iç kullanımı için iç kaynaklar tahsis edilirken işletim sisteminin kullanacağı VA aralığının sonunu belirtir. Hem başlangıç hem de bitiş değerleri sıfırsa, işletim sistemi kullanılabilir VA aralığının tamamını kullanır. |
| Destek Beklenmeyen Kaldırma | Uygun şekilde ayarlayın. Sürücü, uyku modu dışında bile sürpriz kaldırmayı destekliyorsa TRUE olarak ayarlayın. Bkz. DXGKDDI_NOTIFY_SURPRISE_REMOVAL. |
| ComputeOnly | TRUE olarak ayarlanmalıdır. Bu bayrağın uygulanması gerekir. |
Aşağıdaki DXGK_DRIVERCAPS yapı üyeleri, buna göre sıfır veya YANLIŞ olarak ayarlanmalıdır:
- MaxAllocationListSlotId
- ApertureSegmentTaahhütLimiti
- Maksimum İmleç Genişliği
- MaksimumİşaretçiYüksekliği
- PointerCaps
- SwizzlingAralıklarınınSayısı
- MaxOverlays
- GamaRampCaps
- ColorTransformCaps
- SunumKapakları
- MaxQueuedFlipOnVSync
- FlipCaps
- VGA Dışı Destek
- DüzgünDönüşüDestekle
- SupportDirectFlip
- Çok Katmanlı Kaplama Desteği
- MaxOverlayPlanes
- Çok Katmanlı Kaplama Anında Çevirme Desteği
- CursorScaledWithMultiPlaneOverlayPlane0
- HibritAcpiZincirlemeGerekli
- MaxQueuedMultiPlaneOverlayFlipVSync
- DestekBağlamsızMevcut
- Çıkarılabilir
SchedulingCaps gereksinimleri
Aşağıdaki DXGK_DRIVERCAPS. SchedulingCaps yapısı üyeleri uygun değerlere ayarlanmalıdır:
| Üye | Notlar |
|---|---|
| MultiEngineAware | TRUE olarak ayarlanmalıdır. Bkz. GPU ÖnAlımı. |
| VSync Güç Tasarrufu Farkındalığı | false olarak ayarlanmalıdır. |
| ÖnlemeBilinci | TRUE olarak ayarlanmalıdır. Bkz. GPU ÖnAlımı. |
| NoDmaPatching | false olarak ayarlanmalıdır. |
| CancelCommandAware | Uygun şekilde ayarlayın. Bkz. DXGKDDI_CANCELCOMMAND. |
| No64BitAtomiks | Uygun şekilde ayarlayın. Bkz. Bağlam İzleme. |
| LowIrqlPreemptCommand | TRUE olarak ayarlayın. İşletim sistemi, düşük IRQL'de sürücünün DxgkDdiPreemptCommand değerini çağırır. |
| HwQueuePacketCap | Ayrılmış; sıfıra ayarlandı. |
MemoryManagementCaps gereksinimleri
Aşağıdaki DXGK_DRIVERCAPS. MemoryManagementCaps yapı üyeleri uygun değerlere ayarlanmalıdır:
| Üye | Notlar |
|---|---|
| OutOfOrderLock | false olarak ayarlanmalıdır. |
| Özel Sayfalama Motoru | false olarak ayarlanmalıdır. |
| PagingEngineCanSwizzle | false olarak ayarlanmalıdır. |
| BölümDestekliBirincil | false olarak ayarlanmalıdır. |
| CrossAdapterResource | Uygun şekilde ayarlayın. Bkz. Karma Sistemde BağdaştırıcıLar Arası Kaynakları Kullanma. |
| SanalAdreslemeDestekleniyor | Uygun şekilde ayarlayın. Bkz. WDDM 2.0'da GPU sanal belleği. Bu üye ayarlanırsa, sürücünün GpuMmuSupported ve/veya IoMmuSupported değerlerini de ayarlaması gerekir. |
| Gpu Mmu Destekleniyor | Uygun şekilde ayarlayın. Bkz . GpuMmu Modeli. |
| IoMmuDestekleniyor | Uygun şekilde ayarlayın. Cihaz sayfa tablolarını CPU (paylaşılan sanal bellek (SVM) ile paylaştığında bu üst sınır ayarlanır. Bkz. IoMmu Modeli. |
| ReplicateGdiİçeriği | false olarak ayarlanmalıdır. |
| İşlemci Tarafından Görünmeyen Birincil | false olarak ayarlanmalıdır. |
| ParavirtualizasyonDestekleniyor | GPU bölümleme arabirimi (SR-IOVileGPU-P) aracılığıyla cihazın sanallaştırılmasını destekleyen MCDM konak sürücüleri bu alanı FALSE olarak ayarlamalıdır. Diğer tüm durumlar (GPU-P desteği olmayan fiziksel makinelerin sürücüleri veya GPU-Paracılığıyla kullanıma sunulan vGPU'ların konuk sürücüleri) bu alanı TRUE olarak ayarlamalıdır. |
| IoMmuSecureModeSupported | Uygun şekilde ayarlayın. Bu üst sınır TRUE olarak ayarlanırsa, sürücü IoMmu yalıtımını destekler (cihazda IoMmu birimi için ayrılmış bir sayfa tablosu vardır). Bu üst sınır YANLIŞ olarak ayarlanırsa, cihaz "güvenli" sanal makinelerde (Windows Korumalı Alanı veya MDAG) kullanılamaz. |
| S3 Modunda Otomatik VRAM Yenilemesini Devre Dışı Bırak | Uygun şekilde ayarlayın. |
Bellek Yönetimi
Sanal adresleme gereklidir. Fiziksel adresleme desteği gelecekte etkinleştirilebilir.
Cihazların bir bellek aralığını desteklemesi gerekmez.
Yalnızca doğrusal bellek-alan kesimleri ve doğrusal diyafram-boşluk segmentleri desteklenir.