D3D11CreateDevice会导致读取访问冲突(D3D11CreateDevice causes a reading access violation)
代码和问题
我正在尝试使用Microsoft的Application Verifier,并在下面的简单代码中遇到读取访问冲突。 这是我的错吗? 如果不是,我应该向谁报告?
#include <D3D11_1.h> #pragma comment(lib, "d3d11.lib") void main() { ID3D11Device* device = NULL; D3D11CreateDevice( NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION, &device, NULL, NULL); }应用程序验证器输出
Page heap: pid 0x1034: page heap enabled with flags 0x3. AVRF: D3D11_Fails_AppVerifier.exe: pid 0x1034: flags 0x81643027: application verifier enabled First-chance exception at 0x00007FFA4EA681B9 (atiuxp64.dll) in D3D11_Fails_AppVerifier.exe: 0xC0000005: Access violation reading location 0x0000009411813000. ======================================= VERIFIER STOP 0000000000000013: pid 0x1034: First chance access violation for current stack trace. 0000009411813000 : Invalid address causing the exception. 00007FFA4EA681B9 : Code address executing the invalid access. 000000940FA5B430 : Exception record. 000000940FA5AF40 : Context record.WinDBG Callstack
*** ERROR: Symbol file could not be found. Defaulted to export symbols for vrfcore.dll - vrfcore!VerifierStopMessageEx+0x6f4: 00007ffa`48d33a00 cc int 3 0:000> k Child-SP RetAddr Call Site 00000094`0fa5a1b0 00007ffa`48d39d20 vrfcore!VerifierStopMessageEx+0x6f4 *** ERROR: Symbol file could not be found. Defaulted to export symbols for verifier.dll - 00000094`0fa5a510 00007ffa`48c5a9d0 vrfcore!VerifierDisableVerifier+0x948 00000094`0fa5a5a0 00007ffa`54b6a743 verifier!VerifierStopMessage+0xa0 *** ERROR: Module load completed but symbols could not be loaded for vfbasics.dll 00000094`0fa5a640 00007ffa`48cc62d9 ntdll!RtlApplicationVerifierStop+0x103 00000094`0fa5a6a0 00007ffa`48cc8246 vfbasics+0x62d9 00000094`0fa5a700 00007ffa`48cc787e vfbasics+0x8246 00000094`0fa5a790 00007ffa`54af5f42 vfbasics+0x787e 00000094`0fa5a7e0 00007ffa`54af4763 ntdll!RtlRestoreContext+0x182 00000094`0fa5a870 00007ffa`54b330aa ntdll!RtlRaiseException+0xe33 00000094`0fa5af40 00007ffa`4ea681b9 ntdll!KiUserExceptionDispatcher+0x3a *** ERROR: Symbol file could not be found. Defaulted to export symbols for atiuxp64.dll - 00000094`0fa5b658 00000094`1170b0f0 atiuxp64!OpenAdapter10_2+0x12525 00000094`0fa5b660 00000094`0fa5b800 0x00000094`1170b0f0 00000094`0fa5b668 00007ffa`4ea5aa93 0x00000094`0fa5b800 00000094`0fa5b670 00007ffa`4ea55dbe atiuxp64!OpenAdapter10_2+0x4dff *** ERROR: Symbol file could not be found. Defaulted to export symbols for aticfx64.dll - 00000094`0fa5b720 00007ffa`4f18120e atiuxp64!OpenAdapter10_2+0x12a *** ERROR: Symbol file could not be found. Defaulted to export symbols for d3d11.dll - 00000094`0fa5b750 00007ffa`4f3a88c1 aticfx64!OpenAdapter10_2+0x13e 00000094`0fa5b780 00007ffa`4f3a8691 d3d11!D3D11CoreCreateLayeredDevice+0x1ba1 00000094`0fa5b8a0 00007ffa`4f3a85db d3d11!D3D11CoreCreateLayeredDevice+0x1971 00000094`0fa5b900 00007ffa`4f387f3d d3d11!D3D11CoreCreateLayeredDevice+0x18bb 00000094`0fa5ba30 00007ffa`4f387e60 d3d11+0x7f3d 00000094`0fa5ba90 00007ffa`4f3a7c6e d3d11+0x7e60 00000094`0fa5bc60 00007ffa`4f3a81fb d3d11!D3D11CoreCreateLayeredDevice+0xf4e 00000094`0fa5c4c0 00007ffa`4f3a80ad d3d11!D3D11CoreCreateLayeredDevice+0x14db 00000094`0fa5c8a0 00007ffa`4f3a6cf9 d3d11!D3D11CoreCreateLayeredDevice+0x138d 00000094`0fa5c8d0 00007ffa`4f3a73cf d3d11!D3D11CoreCreateDevice+0xb09 00000094`0fa5c910 00007ffa`4f3a730b d3d11!D3D11CoreCreateLayeredDevice+0x6af 00000094`0fa5c960 00007ffa`4f3a7295 d3d11!D3D11CoreCreateLayeredDevice+0x5eb 00000094`0fa5c9d0 00007ffa`4f3a6e61 d3d11!D3D11CoreCreateLayeredDevice+0x575 00000094`0fa5caa0 00007ffa`4f3a7573 d3d11!D3D11CoreCreateLayeredDevice+0x141 00000094`0fa5cb40 00007ffa`4f3a5b7f d3d11!D3D11CoreCreateLayeredDevice+0x853 00000094`0fa5f260 00007ffa`4f3a58e4 d3d11!D3D11CreateDeviceAndSwapChain+0x37f 00000094`0fa5f590 00007ffa`4f3a57ec d3d11!D3D11CreateDeviceAndSwapChain+0xe4 00000094`0fa5f650 00007ffa`4f3a576c d3d11!D3D11CreateDevice+0x14c *** WARNING: Unable to verify checksum for D3D11_Fails_AppVerifier.exe 00000094`0fa5f6c0 00007ff7`a70b1087 d3d11!D3D11CreateDevice+0xcc 00000094`0fa5f770 00007ff7`a70b175d D3D11_Fails_AppVerifier!main+0x77 [c:\_personalprojects\d3d11_fails_appverifier\main.cpp @ 18] 00000094`0fa5f800 00007ff7`a70b188e D3D11_Fails_AppVerifier!__tmainCRTStartup+0x19d [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 536] *** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - 00000094`0fa5f870 00007ffa`540113d2 D3D11_Fails_AppVerifier!mainCRTStartup+0xe [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 377] 00000094`0fa5f8a0 00007ffa`54ab5454 kernel32!BaseThreadInitThunk+0x22 00000094`0fa5f8d0 00000000`00000000 ntdll!RtlUserThreadStart+0x34我的电脑的信息
Windows 8.1 Pro 64位(6.3,Build 9600) AMD Radeon(R)R9 200系列 AMD Catalyst驱动程序(15.7.1)最新版本(上次检查2015年10月15日下午10:16:39)The Code & Question
I'm trying out Microsoft's Application Verifier and hitting a read-access violation on the simple code below. Is this my fault? If not, who should I report this to?
#include <D3D11_1.h> #pragma comment(lib, "d3d11.lib") void main() { ID3D11Device* device = NULL; D3D11CreateDevice( NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION, &device, NULL, NULL); }Application Verifier Output
Page heap: pid 0x1034: page heap enabled with flags 0x3. AVRF: D3D11_Fails_AppVerifier.exe: pid 0x1034: flags 0x81643027: application verifier enabled First-chance exception at 0x00007FFA4EA681B9 (atiuxp64.dll) in D3D11_Fails_AppVerifier.exe: 0xC0000005: Access violation reading location 0x0000009411813000. ======================================= VERIFIER STOP 0000000000000013: pid 0x1034: First chance access violation for current stack trace. 0000009411813000 : Invalid address causing the exception. 00007FFA4EA681B9 : Code address executing the invalid access. 000000940FA5B430 : Exception record. 000000940FA5AF40 : Context record.WinDBG Callstack
*** ERROR: Symbol file could not be found. Defaulted to export symbols for vrfcore.dll - vrfcore!VerifierStopMessageEx+0x6f4: 00007ffa`48d33a00 cc int 3 0:000> k Child-SP RetAddr Call Site 00000094`0fa5a1b0 00007ffa`48d39d20 vrfcore!VerifierStopMessageEx+0x6f4 *** ERROR: Symbol file could not be found. Defaulted to export symbols for verifier.dll - 00000094`0fa5a510 00007ffa`48c5a9d0 vrfcore!VerifierDisableVerifier+0x948 00000094`0fa5a5a0 00007ffa`54b6a743 verifier!VerifierStopMessage+0xa0 *** ERROR: Module load completed but symbols could not be loaded for vfbasics.dll 00000094`0fa5a640 00007ffa`48cc62d9 ntdll!RtlApplicationVerifierStop+0x103 00000094`0fa5a6a0 00007ffa`48cc8246 vfbasics+0x62d9 00000094`0fa5a700 00007ffa`48cc787e vfbasics+0x8246 00000094`0fa5a790 00007ffa`54af5f42 vfbasics+0x787e 00000094`0fa5a7e0 00007ffa`54af4763 ntdll!RtlRestoreContext+0x182 00000094`0fa5a870 00007ffa`54b330aa ntdll!RtlRaiseException+0xe33 00000094`0fa5af40 00007ffa`4ea681b9 ntdll!KiUserExceptionDispatcher+0x3a *** ERROR: Symbol file could not be found. Defaulted to export symbols for atiuxp64.dll - 00000094`0fa5b658 00000094`1170b0f0 atiuxp64!OpenAdapter10_2+0x12525 00000094`0fa5b660 00000094`0fa5b800 0x00000094`1170b0f0 00000094`0fa5b668 00007ffa`4ea5aa93 0x00000094`0fa5b800 00000094`0fa5b670 00007ffa`4ea55dbe atiuxp64!OpenAdapter10_2+0x4dff *** ERROR: Symbol file could not be found. Defaulted to export symbols for aticfx64.dll - 00000094`0fa5b720 00007ffa`4f18120e atiuxp64!OpenAdapter10_2+0x12a *** ERROR: Symbol file could not be found. Defaulted to export symbols for d3d11.dll - 00000094`0fa5b750 00007ffa`4f3a88c1 aticfx64!OpenAdapter10_2+0x13e 00000094`0fa5b780 00007ffa`4f3a8691 d3d11!D3D11CoreCreateLayeredDevice+0x1ba1 00000094`0fa5b8a0 00007ffa`4f3a85db d3d11!D3D11CoreCreateLayeredDevice+0x1971 00000094`0fa5b900 00007ffa`4f387f3d d3d11!D3D11CoreCreateLayeredDevice+0x18bb 00000094`0fa5ba30 00007ffa`4f387e60 d3d11+0x7f3d 00000094`0fa5ba90 00007ffa`4f3a7c6e d3d11+0x7e60 00000094`0fa5bc60 00007ffa`4f3a81fb d3d11!D3D11CoreCreateLayeredDevice+0xf4e 00000094`0fa5c4c0 00007ffa`4f3a80ad d3d11!D3D11CoreCreateLayeredDevice+0x14db 00000094`0fa5c8a0 00007ffa`4f3a6cf9 d3d11!D3D11CoreCreateLayeredDevice+0x138d 00000094`0fa5c8d0 00007ffa`4f3a73cf d3d11!D3D11CoreCreateDevice+0xb09 00000094`0fa5c910 00007ffa`4f3a730b d3d11!D3D11CoreCreateLayeredDevice+0x6af 00000094`0fa5c960 00007ffa`4f3a7295 d3d11!D3D11CoreCreateLayeredDevice+0x5eb 00000094`0fa5c9d0 00007ffa`4f3a6e61 d3d11!D3D11CoreCreateLayeredDevice+0x575 00000094`0fa5caa0 00007ffa`4f3a7573 d3d11!D3D11CoreCreateLayeredDevice+0x141 00000094`0fa5cb40 00007ffa`4f3a5b7f d3d11!D3D11CoreCreateLayeredDevice+0x853 00000094`0fa5f260 00007ffa`4f3a58e4 d3d11!D3D11CreateDeviceAndSwapChain+0x37f 00000094`0fa5f590 00007ffa`4f3a57ec d3d11!D3D11CreateDeviceAndSwapChain+0xe4 00000094`0fa5f650 00007ffa`4f3a576c d3d11!D3D11CreateDevice+0x14c *** WARNING: Unable to verify checksum for D3D11_Fails_AppVerifier.exe 00000094`0fa5f6c0 00007ff7`a70b1087 d3d11!D3D11CreateDevice+0xcc 00000094`0fa5f770 00007ff7`a70b175d D3D11_Fails_AppVerifier!main+0x77 [c:\_personalprojects\d3d11_fails_appverifier\main.cpp @ 18] 00000094`0fa5f800 00007ff7`a70b188e D3D11_Fails_AppVerifier!__tmainCRTStartup+0x19d [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 536] *** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - 00000094`0fa5f870 00007ffa`540113d2 D3D11_Fails_AppVerifier!mainCRTStartup+0xe [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 377] 00000094`0fa5f8a0 00007ffa`54ab5454 kernel32!BaseThreadInitThunk+0x22 00000094`0fa5f8d0 00000000`00000000 ntdll!RtlUserThreadStart+0x34My PC's Info
Windows 8.1 Pro 64-bit (6.3, Build 9600) AMD Radeon (TM) R9 200 Series AMD Catalyst driver (15.7.1) Up to Date (Last checked 10/15/2015 10:16:39 PM)最满意答案
在使用D3D_DRIVER_TYPE_WARP之后,App-Verifier不再检测到读取违规。
我联系了AMD。 谢谢你的建议Chuck Walbourn!
App-Verifier no longer detects a read violation after using D3D_DRIVER_TYPE_WARP.
I've contacted AMD. Thanks for the suggestion Chuck Walbourn!
更多推荐
发布评论