適用于 Windows 7 的平臺更新
本主題描述透過 Windows 7 平臺更新提供之 Windows 7 圖形堆疊元件的改善。
在 Windows 7 上安裝時,適用于 Windows 7 的平臺更新會更新 Windows 7,其中包含Windows 8中可用的功能。 例如,這些Windows 8元件可供完整功能使用:
- Direct2D 1.1 (包括 Direct2D 效果)
- DirectWrite
- Windows 影像處理元件 (WIC)
這些提供部分功能:
- Direct3D 11.1
- DXGI 1.2
例如,此元件無法使用:
- DirectComposition (DComp)
如需 Direct2D、DirectWrite和 WIC 與平臺更新的相關資訊,請參閱下列主題:
- Windows 8 (Windows) Direct2D 的新功能
- Windows 8 (Windows) DirectWrite 的新功能
- Windows 8 (Windows) 中 WIC 的新功能
如需使用平臺更新的 Direct3D 和 DXGI 相關資訊,請參閱下列主題:
安裝平臺更新之後,Direct3D11.1 和 DXGI 1.2 中引進的介面將會提供部分功能。 這些圖形元件的功能會直接系結至圖形核心元件、圖形驅動程式和圖形硬體。 在 Windows 7 上使用 Direct3D11.1 之前,請先熟悉下列細節:
Windows 8引進了 WDDM 1.2 驅動程式模型,其為所有功能層級提供相關聯 API 介面的改善。 閱讀 Direct3D11.1 檔時,瞭解 新的驅動程式 表示 WDDM 1.2 驅動程式。 這些更新的驅動程式版本,以及透過 CheckFeatureSupport公開的大部分選擇性功能,在 Windows 7 上都無法使用。 由於無法保證這些選用功能可供使用,因此請確定您的應用程式在所需的功能無法使用時有適當的後援行為。
有一個重要的例外狀況。 具有常數緩衝區位移的 PSSetConstantBuffers1 等數個功能需要 功能層級 10 和更新版本的新驅動程式,但實際上會模擬功能層級 9。 此模擬可在 Windows 7 上使用平臺更新。 如需模擬哪些功能的詳細資訊 ,請參閱D3D11_FEATURE_DATA_D3D11_OPTIONS 。
Windows 8 WDDM 1.2 驅動程式模型支援新一代的硬體,透過 D3D功能層級11.1 公開。 具有平臺更新的 Windows 7 僅支援 WDDM 1.1 驅動程式模型,因此無法透過平臺更新) (功能層級 11.1 硬體支援。 在具有平臺更新的 Windows 7 上, D3D11CreateDevice 一律會傳回功能層級 11.0 或更低,但除了可用來在 Windows 7 上測試 11.1 程式碼路徑的參考裝置以外。 僅使用目標功能層級可用的功能,如功能層級參考中所述。
Windows 7 平臺更新不支援 DGXI 1.2 中引進的一些新方法。您可以直接呼叫這些函式並檢查錯誤碼來測試這些函式的可用性。 確定以 Windows 7 為目標的應用程式在平臺更新無法使用時已備妥後援。 Windows 7 的 Platform Update 無法使用這些功能類別:
- 立體聲
- 交換鏈未以 Hwnds 為目標
- 遮蔽狀態通知
- 桌面重複
- NT 控制碼資源
具體而言,下列 API 會傳回DXGI_ERROR_UNSUPPORTED、DXGI_ERROR_INVALID_CALL、E_NOTIMPL或E_INVALIDARG:
- IDXGIFactory2::CreateSwapChainForCoreWindow
- IDXGIFactory2::CreateSwapChainForComposition
- IDXGIFactory2::RegisterStereoStatusWindow
- IDXGIFactory2::RegisterStereoStatusEvent
- IDXGIFactory2::UnregisterStereoStatus
- IDXGIFactory2::RegisterOcclusionStatusWindow
- IDXGIFactory2::RegisterOcclusionStatusEvent
- IDXGIFactory2::UnregisterOcclusionStatus
- IDXGISwapChain1::GetCoreWindow
- IDXGISwapChain1::SetRotation
- IDXGISwapChain1::GetRotation
- IDXGIOutput1::DuplicateOutput
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Device1::OpenSharedResource1
- ID3D11Device1::OpenSharedResourceByName
這些 API 的行為差異如下所述:
- IDXGIFactory2::CreateSwapChainForHwnd 採用 DXGI_SWAP_CHAIN_DESC1 結構,其 具有調整的欄位。 windows 7 不支援平臺更新DXGI_SCALING_NONE,而且會在呼叫時造成 CreateSwapChainForHwnd 傳回DXGI_ERROR_INVALID_CALL。
- IDXGISwapChain1::SetBackgroundColor 只有在使用 DXGI_SCALING_NONE 在交換鏈上設定時才有用。 其值仍會儲存且可擷取,但沒有任何作用。
- IDXGIDisplayControl::IsStereoEnabled、 IDXGIFactory2::IsWindowedStereoEnabled和 IDXGISwapChain1::IsTemporaryMonoSupported 全部都會傳 回 FALSE。
- 已新增IDXGIOutput1::GetDisplayModeList1和IDXGIOutput1::FindClosestMatchingMode1來加速身歷聲顯示模式。 Windows 7 平臺更新不支援身歷聲,因此此方法相當於 IDXGIOutput::FindClosestMatchingMode 作為 DXGI_MODE_DESC1。身歷聲一律為 FALSE。
- Windows 7 平臺更新不支援IDXGIDevice2::OfferResources和IDXGIDevice2::ReclaimResources。 不過,執行時間仍允許呼叫它們,並執行它們正正確用於非共用資源的驗證。
- WARP 裝置僅支援 功能層級 11.0。 也就是說,在D3D11CreateDevice的DriverType參數中傳遞D3D_DRIVER_TYPE_WARP所建立的 WARP 裝置不支援 11.1,也不支援共用表面。
對於目前使用 D3D11_CREATE_DEVICE_DEBUG 旗標在 Microsoft Visual Studio 2010 或更早版本中處理應用程式的開發人員,請注意 對 D3D11CreateDevice 的呼叫將會失敗。 這是因為 D3D11.1 執行時間現在需要D3D11_1SDKLayers.dll,而不是D3D11SDKLayers.dll。 若要取得這個新的 DLL (D3D11_1SDKLayers.dll) ,請安裝Windows 8 SDK或Visual Studio 2012 或 Visual Studio 2012遠端偵錯工具。 如需詳細資訊,請參閱 偵錯層 檔。