Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können verhindern, dass die Grafikdiagnose und andere Profilerstellungstools die App überprüfen, um den Missbrauch durch böswilliger Benutzer zu verhindern.
Mit der Grafikdiagnose in Visual Studio können Sie bei der Entwickelung von Apps ausführliche Informationen erfassen und analysieren, damit Sie die App verbessern können, bevor Sie sie veröffentlichen.Wenn Sie jedoch verhindern, dass die Grafikdiagnose diese Informationen vor der Veröffentlichung der App erfasst, kann ein böswilliger Benutzer diese Tools verwenden, um die Grafikressourcen, Shader-Code und andere Informationen zu extrahieren und diese für den Missbrauch der App zu nutzen.Beispielsweise kann ein böswilliger Benutzer die Grafikressourcen und den Shader-Code ändern, um einen unfairen Vorteil in einem Onlinespiel zu erreichen.
Plattform- und SDK-Unterstützung
In Windows SDK für Windows 8 enthält die Direct3D10-Unterstüztung zusätzliche Flags für die Erstellung von Geräten.Insbesondere enthält sie D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY, mit dem verhindert wird, dass Grafikprofilerstellungstools wie Grafikdiagnose an eine App anknüpfen.Apps, die auf die Direct3D-Headerdateien verweisen, die in Windows SDK für Windows 8 enthalten sind, können diese neuen Flags verwenden. Jedoch Apps, die auf die Direct3D-Headerdateien im DirectX SDK von Juni 2010 verweisen, können dies nicht.Dies gilt für Apps, die auf Windows 8 und Windows 7 ausgeführt werden.
In Direct3D 11.1, können Sie ID3DUserDefinedAnnotation::GetStatus verwenden, um zu verhindern, dass Grafikprofilerstellungstools Informationen über Ihre App aufzeichnen.Da diese Schnittstelle nicht in Windows 7 verfügbar ist, auch nicht, wenn auf das Windows SDK für Windows 8 verwiesen wird, gilt dies nur für Apps, die auf Windows 8 ausgeführt werden.
Für Apps, die nicht auf die aktualisierten Direct3D-Header in Windows SDK für Windows 8 verweisen, können Sie verhindern, dass Grafikprofilerstellungstools Informationen erfassen, indem Sie die App für Direct3D 9Ex erstellen und die D3DPerf_SetOptions-API verwenden.
Direct3D 11.1 bietet zwei Möglichkeiten, um zu verhindern, dass Grafikprofilerstellungstools wie Grafikdiagnose eine Verbindung mit einer App herstellen.Die erste Methode besteht darin, mit ID3DUserDefinedAnnotation::GetStatus zu ermitteln, ob die App durch ein Profilerstellungstool überwacht wird. Falls dies der Fall ist, wird die App sofort beendet.Verwenden Sie diese Methode, wenn Sie eine Aktion ausführen möchten, bevor die App geschlossen wird.Die zweite Methode besteht darin, das entsprechende Flag festzulegen, wenn Sie das Direct3D-Gerät erstellen.
So verhindern Sie die Grafikprofilierung mithilfe von Direct3D 11 und von Windows SDK für Windows 8
Rufen Sie, bevor vertrauliche Direct3D-Aufrufe ausgeführt werden, im Quellcode der App die ID3DUserDefinedAnnotation::GetStatus-Methode auf, und schreiben Sie Code, der bewirkt, dass die App sofort geschlossen wird, wenn der Rückgabewert ungleich 0 (null) ist.
- oder -
Übergeben Sie in das D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY-Flag, wenn Sie das Direct3D 11-Gerät im Quellcode der App erstellen.Weitere Informationen dazu, wie Sie ein Direct3D 11-Gerät erstellen, finden Sie unter D3D11CreateDevice und D3D11CreateDeviceAndSwapChain.Informationen zum D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY-Flag, finden Sie unter D3D11_CREATE_DEVICE_FLAG-Enumeration.
Direct3D 10 bietet eine Technik, das dem Direct3D 11-Verfahren ähnelt, wenn Sie auf Headerdateien in Windows SDK für Windows 8 verweisen.
So verhindern Sie die Grafikprofilierung mithilfe von Direct3D 10 und von Windows SDK für Windows 8
- Übergeben Sie in das D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY-Flag, wenn Sie das Direct3D 10-Gerät im Quellcode der App erstellen.Weitere Informationen dazu, wie Sie ein Direct3D 10- oder Direct3D 10.1-Gerät erstellen, finden Sie unter Direct3D 10 Kern-FunktionenInformationen zum D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY-Flag finden Sie unter D3D10_CREATE_DEVICE_FLAG enumeration.
Sie können auch verhindern, dass Grafikprofilerstellungstools wie die Grafikdiagnose an die App anknüpfen, indem Sie das DirectX SDK von Juni 2010 anstelle des Windows SDK für Windows 8 verwenden.
So verhindern Sie die Grafikprofilierung mit dem DirectX SDK von Juni 2010
Konfigurieren Sie die App für die DirectX 9Ex-Headerdateien.
Bevor Sie das Direct3D-Gerät im Quellcode der App erstellen, rufen Sie die D3DPERF_SetOptions-API auf, und verwenden Sie einen Parameter aus 1.Weitere Informationen finden Sie in der Dokumentation zum DirectX SDK von Juni 2010.