適用於 Windows 7 的平臺更新
本主題描述透過適用於 Windows 7 的 Platform Update取得之 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 的 Direct2D 新功能 (Windows)
- 適用於 Windows 8 的 DirectWrite 新功能 (Windows)
- Windows 8 中 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 平臺更新上無法使用這些類別的功能:
- 立體聲
- 交換鏈未以 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::IsStereoEnabledIDXGIFactory2::IsWindowedStereoEnabled和 IDXGISwapChain1::IsTemporaryMonoSupported 都會傳回 FALSE 。
- IDXGIOutput1::GetDisplayModeList1 和 IDXGIOutput1::FindClosestMatchingMode1,以加速立體顯示模式。 Windows 7 平臺更新不支援立體聲,因此此方法相當於 IDXGIOutput::FindClosestMatchingModeDXGI_MODE_DESC1。立體聲一律為 FALSE。
- IDXGIDevice2::OfferResources 和 IDXGIDevice2:: Windows 7 平臺更新不支援ReclaimResources。 不過,運行時間仍然允許呼叫它們,並執行驗證它們正正確用於非共享資源。
- WARP 裝置僅支援 11.0 功能層級。 也就是說,在 DriverType 參數中傳遞 D3D_DRIVER_TYPE_WARPD3D11CreateDevice 不支援 11.1 或不支援共用介面所建立的 WARP 裝置。
對於目前使用 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 遠端偵錯工具。 如需詳細資訊,請參閱 偵錯層 檔。