Markus wrote: Few problems with your patch:
> + IDirect3D9 *(WINAPI *pDirect3DCreate9)(UINT) = NULL; > + IDirect3D9 *pD3d = NULL; No need to initialize something you'll assign to anyway. > + d3d9_handle = LoadLibraryA( "d3d9.dll" ); You need to unload it when you done. > + memset(&adapter_ident, 0, sizeof(adapter_ident)); No need to clear this structure. > + StringFromGUID2(&adapter_ident.DeviceIdentifier, adapter_ident_str, > 39); Why don't you put it directly into szIdentifierBuffer? > + memcpy( szIdentifierBuffer, adapter_ident_str, > sizeof(adapter_ident_str) * sizeof(WCHAR) ); sizeof() gives size in bytes. You don't need to multiply it by sizeof(WCHAR). > + WCHAR deviceIdentBuffer[256]; First why 256 if all you need is 39? Second, why do you need it at all? There is already "buffer" which is big enough. > + DXDiag_GetDisplayDeviceIdentifier( &deviceIdentBuffer ); You don't need to take a reference from array. It's already a pointer (remove "&"). Any time you pass array like that you should also pass it's size. Vitaliy.
