Aracılığıyla paylaş


MCDM çekirdek modu sürücü uygulama yönergeleri

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:

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:

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:

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:

İ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:

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:

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:

DxgkDdiDispatchIoRequest

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:

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ı ayarlanırsa, aşağıdaki DXGK_QUERYADAPTERINFOTYPE desteklenmelidir:

  • 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.