Sdílet prostřednictvím


Jak: zakázat Diagnostika grafiky ve vaší aplikace.

Můžete zabránit Diagnostice grafiky a dalším nástrojům Profiling Tools kontrolovat vaši aplikaci a zabránit jejímu zneužití uživatelem se zlými úmysly.

Pomocí Diagnostiky grafiky Visual Studio během vývoje aplikace můžete zaznamenat a analyzovat podrobné informace, a vylepšit tak aplikaci před publikováním.Pokud však nezabráníte Diagnostice grafiky v zachycení těchto informací před publikováním aplikace, uživatelé se zlými úmysly by mohl pomocí těchto nástrojů extrahovat jeho aktiva designu, kód shaderu a další informace a použít je ke zneužití aplikace.Například, uživatel se zlými úmysly může upravit grafické prvky a kódu shaderu, aby získat nefér výhodu během online hry.

Podpora platformy a SDK

V Windows SDK pro Windows 8 podpora rozhraní Direct3D 10 zahrnuje další příznaky pro vytváření zařízení.Zejména zahrnuje D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY chránící grafické nástroje pro profilování, například Graphics Diagnostics před hookováním aplikace.Aplikace, které odkazují na soubory záhlaví Direct3D, obsažené v prostředí Windows SDK pro Windows 8 mohou použít tyto nové příznaky, ale aplikace, které odkazují na soubory záhlaví Direct3D záhlaví v prostředí DirectX SDK z června 2010, nikoli.To platí pro aplikace spuštěné v systémech Windows 8 a Windows 7.

V rozhraní Direct3D 11.1 můžete použít ID3DUserDefinedAnnotation::GetStatus a zabránit tak nástrojům profilování grafiky ve shromažďování informací o vaší aplikaci.Protože toto rozhraní není pro systém Windows 7 k dispozici ani při odkazování na Windows SDK pro Windows 8, platí to pouze pro aplikace spuštěné v systému Windows 8.

Pro aplikace, u nichž nejsou aktualizována Direct3D záhlaví v Windows SDK pro Windows 8, můžete grafickým nástrojům zakázat shromažďování informací, a to vytvořením aplikace proti Direct3D 9Ex a prostřednictvím rozhraní D3DPerf_SetOptions.

Direct3D 11.1 poskytuje dva způsoby, jak zabránit nástrojům profilování grafiky, například Diagnostice grafiky, z připojení k aplikaci.Prvním způsob je použít ID3DUserDefinedAnnotation::GetStatus ke zjištění, zda je aplikace pozorována nástrojem profilování a pokud ano, ihned ukončete aplikaci.Tento postup použijte, pokud chcete provést akci před zavřením aplikace.Druhou technikou je nastavit odpovídající příznak při tvorbě zařízení Direct3D.

Zabránění profilování grafiky pomocí rozhraní Direct3D 11 a Windows SDK pro systém Windows 8

  • Ve zdrojovém kódu vaší aplikace před provedením jakéhokoli citlivého volání Direct3D volejte metodu ID3DUserDefinedAnnotation::GetStatus a zapište kód, který způsobuje okamžité ukončení aplikace, pokud je vrácená hodnota nenulová.

    -nebo-

    Při vytváření zařízení Direct3D 11 ve zdrojovém kódu vaší aplikace je třeba předat příznak D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY.Informace o tom, jak vytvořit zařízení Direct3D 11 naleznete zde: D3D11CreateDevice a D3D11CreateDeviceAndSwapChain.Informace o příznaku D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY naleznete v části Výčet D3D11_CREATE_DEVICE_FLAG.

Rozhraní Direct3D 10 poskytuje techniku podobná druhé technice Direct3D 11, pokud odkazujete na hlavičkové soubory Windows SDK pro Windows 8.

Zabránění profilování grafiky pomocí rozhraní Direct3D 10 a Windows SDK pro systém Windows 8

  • Při vytváření zařízení Direct3D 10 ve zdrojovém kódu vaší aplikace je třeba předat příznak D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY.Informace o tom, jak vytvořit zařízení Direct3D 10 nebo Direct3D 10.1 naleznete v tématu Direct3D 10 Základní funkce.Informace o příznaku D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY naleznete v části Výčet D3D10_CREATE_DEVICE_FLAG.

Můžete také zabránit zapojení nástrojů profilování, jako jsou Diagnostika grafiky vaší aplikace, pomocí rozhraní DirectX SDK (červen 2010) namísto rozhraní Windows SDK pro systém Windows 8.

Zabránění profilování grafiky pomocí rozhraní DirectX SDK Červen 2010

  1. Konfigurujte aplikaci pro vytváření podle souborů záhlaví rozhraní DirectX 9Ex.

  2. Před vytvořením zařízení Direct3D ve zdrojovém kódu aplikace vyvolejte rozhraní API D3DPERF_SetOptions použijte parametr 1.Další informace naleznete v dokumentaci k verzi DirectX SDK z června 2010.