wine
15 years agokernel32: Retrieve the executable information as soon as we open the file.
Alexandre Julliard [Tue, 27 Oct 2009 18:41:38 +0000 (19:41 +0100)] 
kernel32: Retrieve the executable information as soon as we open the file.

15 years agokernel32: Add a structure to store all the information about an executable.
Alexandre Julliard [Tue, 27 Oct 2009 18:30:30 +0000 (19:30 +0100)] 
kernel32: Add a structure to store all the information about an executable.

15 years agokernel32: Specify the full application path when starting wineboot.exe.
Alexandre Julliard [Tue, 27 Oct 2009 19:48:47 +0000 (20:48 +0100)] 
kernel32: Specify the full application path when starting wineboot.exe.

15 years agontdll: The meaning of the flag is inverted between RtlWow64EnableFsRedirection and...
Alexandre Julliard [Wed, 28 Oct 2009 09:54:22 +0000 (10:54 +0100)] 
ntdll: The meaning of the flag is inverted between RtlWow64EnableFsRedirection and RtlWow64EnableFsRedirectionEx.

15 years agolibwine: Reserve some low memory space even without a preloader.
Alexandre Julliard [Tue, 27 Oct 2009 18:06:48 +0000 (19:06 +0100)] 
libwine: Reserve some low memory space even without a preloader.

15 years agokernel32: Make GetQueuedCompletionStatus return failure for I/O errors, as per MSDN.
Alexandre Julliard [Tue, 27 Oct 2009 15:52:35 +0000 (16:52 +0100)] 
kernel32: Make GetQueuedCompletionStatus return failure for I/O errors, as per MSDN.

15 years agomsi: Test that a query on a join of two tables returns data from the correct table.
Nate Gallaher [Sun, 18 Oct 2009 16:47:02 +0000 (12:47 -0400)] 
msi: Test that a query on a join of two tables returns data from the correct table.

15 years agomsi: Add tablename tracking to VIEW_find_column.
Nate Gallaher [Sun, 18 Oct 2009 16:41:41 +0000 (12:41 -0400)] 
msi: Add tablename tracking to VIEW_find_column.

This fixes the bug where multiple columns of the same name, but
different tables are members of a join. Any attempt to refer to these
columns will resolve to the first available column with that name,
irregardless of any tablename modifier.

15 years agod3dx9: Add D3DXAssembleShader tests.
Matteo Bruni [Tue, 15 Sep 2009 22:41:33 +0000 (00:41 +0200)] 
d3dx9: Add D3DXAssembleShader tests.

15 years agooledb32: Add a couple of conversions to DBTYPE_FILETIME.
Huw Davies [Tue, 27 Oct 2009 12:25:19 +0000 (12:25 +0000)] 
oledb32: Add a couple of conversions to DBTYPE_FILETIME.

15 years agooledb32: Add CanConvert support for DBTYPE_FILETIME.
Huw Davies [Tue, 27 Oct 2009 12:17:27 +0000 (12:17 +0000)] 
oledb32: Add CanConvert support for DBTYPE_FILETIME.

15 years agomsdaps: Implement IRowsetInfo_GetProperties proxy and stub.
Huw Davies [Tue, 27 Oct 2009 10:19:26 +0000 (10:19 +0000)] 
msdaps: Implement IRowsetInfo_GetProperties proxy and stub.

15 years agoinclude: Add rstinf.idl.
Huw Davies [Tue, 27 Oct 2009 10:11:36 +0000 (10:11 +0000)] 
include: Add rstinf.idl.

15 years agomsdaps: Implement SetCommandText proxy and stub.
Huw Davies [Mon, 26 Oct 2009 15:44:50 +0000 (15:44 +0000)] 
msdaps: Implement SetCommandText proxy and stub.

15 years agoinclude: Add cmdtxt.idl.
Huw Davies [Mon, 26 Oct 2009 15:42:13 +0000 (15:42 +0000)] 
include: Add cmdtxt.idl.

15 years agoinclude: Add cmdbas.idl.
Huw Davies [Mon, 26 Oct 2009 14:21:18 +0000 (14:21 +0000)] 
include: Add cmdbas.idl.

15 years agoadvapi32/tests: Add a input parameter check (CloseEventLog).
Paul Vriens [Tue, 27 Oct 2009 09:37:07 +0000 (10:37 +0100)] 
advapi32/tests: Add a input parameter check (CloseEventLog).

15 years agoadvapi32/tests: Cope with empty servername.
Paul Vriens [Tue, 27 Oct 2009 09:27:28 +0000 (10:27 +0100)] 
advapi32/tests: Cope with empty servername.

15 years agoadvapi32/tests: Add some input parameter checks.
Paul Vriens [Tue, 27 Oct 2009 08:33:55 +0000 (09:33 +0100)] 
advapi32/tests: Add some input parameter checks.

15 years agoadvapi32/tests: Add some basic eventlog tests.
Paul Vriens [Mon, 26 Oct 2009 19:06:13 +0000 (20:06 +0100)] 
advapi32/tests: Add some basic eventlog tests.

15 years agowinex11: Allow assigning non-OEM virtual key codes for remaining keys.
Ken Thomases [Tue, 27 Oct 2009 03:29:35 +0000 (22:29 -0500)] 
winex11: Allow assigning non-OEM virtual key codes for remaining keys.

This is safe because the keyboard layout tables and standard virtual
key code assignments have all already been done.  This is necessary
because some X11 keyboard mappings (e.g. Greek keyboard layout on a
Mac) are full of non-Latin keysyms.

15 years agowinex11: Use a table of available OEM virtual key codes.
Ken Thomases [Tue, 27 Oct 2009 03:29:26 +0000 (22:29 -0500)] 
winex11: Use a table of available OEM virtual key codes.

Restore availability of vkeys prior to VK_OEM_8.  That's safe now that OEM
vkeys are assigned in a separate loop after standard OEM vkey assignments
have been made.

15 years agowinex11: Assign OEM virtual key codes in a separate loop.
Ken Thomases [Tue, 27 Oct 2009 03:29:16 +0000 (22:29 -0500)] 
winex11: Assign OEM virtual key codes in a separate loop.

15 years agod3d10: Improve set_variable_vtbl().
Rico Schüller [Mon, 26 Oct 2009 17:39:19 +0000 (18:39 +0100)] 
d3d10: Improve set_variable_vtbl().

15 years agod3d10: Add ID3D10EffectShaderVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:39:15 +0000 (18:39 +0100)] 
d3d10: Add ID3D10EffectShaderVariableVtbl.

15 years agod3d10: Add ID3D10EffectDepthStencilViewVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:39:11 +0000 (18:39 +0100)] 
d3d10: Add ID3D10EffectDepthStencilViewVariableVtbl.

15 years agod3d10: Add ID3D10EffectRenderTargetViewVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:39:04 +0000 (18:39 +0100)] 
d3d10: Add ID3D10EffectRenderTargetViewVariableVtbl.

15 years agod3d10: Add ID3D10EffectShaderResourceVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:39:00 +0000 (18:39 +0100)] 
d3d10: Add ID3D10EffectShaderResourceVariableVtbl.

15 years agod3d10: Add ID3D10EffectStringVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:38:57 +0000 (18:38 +0100)] 
d3d10: Add ID3D10EffectStringVariableVtbl.

15 years agod3d10: Add ID3D10EffectSamplerVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:38:53 +0000 (18:38 +0100)] 
d3d10: Add ID3D10EffectSamplerVariableVtbl.

15 years agod3d10: Add ID3D10EffectRasterizerVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:38:50 +0000 (18:38 +0100)] 
d3d10: Add ID3D10EffectRasterizerVariableVtbl.

15 years agod3d10: Add ID3D10EffectDepthStencilVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:38:46 +0000 (18:38 +0100)] 
d3d10: Add ID3D10EffectDepthStencilVariableVtbl.

15 years agod3d10: Add ID3D10EffectBlendVariableVtbl.
Rico Schüller [Mon, 26 Oct 2009 17:38:31 +0000 (18:38 +0100)] 
d3d10: Add ID3D10EffectBlendVariableVtbl.

15 years agod3d10: Improve ID3D10Effect::GetVariableByName().
Rico Schüller [Mon, 26 Oct 2009 17:38:21 +0000 (18:38 +0100)] 
d3d10: Improve ID3D10Effect::GetVariableByName().

15 years agod3d10: Implement ID3D10Effect::GetVariableByIndex().
Rico Schüller [Mon, 26 Oct 2009 17:38:13 +0000 (18:38 +0100)] 
d3d10: Implement ID3D10Effect::GetVariableByIndex().

15 years agosetupapi: Create fake dlls before performing dll registration.
Alexandre Julliard [Tue, 27 Oct 2009 10:26:12 +0000 (11:26 +0100)] 
setupapi: Create fake dlls before performing dll registration.

15 years agowine.inf: Specify the full path to iexplore.exe and winemenubuiler.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:25:50 +0000 (11:25 +0100)] 
wine.inf: Specify the full path to iexplore.exe and winemenubuiler.exe.

15 years agoshdocvw: Specify the full path to iexplore.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:25:39 +0000 (11:25 +0100)] 
shdocvw: Specify the full path to iexplore.exe.

15 years agooleview: Specify the full application path when starting regedit.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:23:00 +0000 (11:23 +0100)] 
oleview: Specify the full application path when starting regedit.exe.

15 years agoexplorer: Specify the full application path when starting winefile.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:22:51 +0000 (11:22 +0100)] 
explorer: Specify the full application path when starting winefile.exe.

15 years agouser32: Specify the full application path when starting builtin apps.
Alexandre Julliard [Tue, 27 Oct 2009 10:22:38 +0000 (11:22 +0100)] 
user32: Specify the full application path when starting builtin apps.

15 years agoshdocvw: Specify the full application path when starting winemenubuilder.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:22:32 +0000 (11:22 +0100)] 
shdocvw: Specify the full application path when starting winemenubuilder.exe.

15 years agoshell32: Specify the full application path when starting winemenubuilder.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:21:34 +0000 (11:21 +0100)] 
shell32: Specify the full application path when starting winemenubuilder.exe.

15 years agorpcrt4: Specify the full application path when starting rpcss.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:20:42 +0000 (11:20 +0100)] 
rpcrt4: Specify the full application path when starting rpcss.exe.

15 years agoole32: Specify the full application path when starting rpcss.exe.
Alexandre Julliard [Tue, 27 Oct 2009 10:20:34 +0000 (11:20 +0100)] 
ole32: Specify the full application path when starting rpcss.exe.

15 years agowined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext().
Henri Verbeet [Tue, 27 Oct 2009 09:10:43 +0000 (10:10 +0100)] 
wined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext().

15 years agowined3d: Restore the wglMakeCurrent() call in context_destroy_gl_resources().
Henri Verbeet [Tue, 27 Oct 2009 09:10:42 +0000 (10:10 +0100)] 
wined3d: Restore the wglMakeCurrent() call in context_destroy_gl_resources().

e3ca576576c46131330353f45990f55045cf7541 removed this call because we don't
need it to tell if the context is valid, but we still need it to actually make
the context current.

15 years agowined3d: Set a driver name appropriate for the vendor in init_driver_info().
Henri Verbeet [Tue, 27 Oct 2009 09:10:41 +0000 (10:10 +0100)] 
wined3d: Set a driver name appropriate for the vendor in init_driver_info().

15 years agowined3d: Apply PCI ID overrides in init_driver_info() instead of IWineD3DImpl_GetAdap...
Henri Verbeet [Tue, 27 Oct 2009 09:10:40 +0000 (10:10 +0100)] 
wined3d: Apply PCI ID overrides in init_driver_info() instead of IWineD3DImpl_GetAdapterIdentifier().

15 years agowined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.
Henri Verbeet [Tue, 27 Oct 2009 09:10:39 +0000 (10:10 +0100)] 
wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.

15 years agomsi: Avoid accessing uninitialized memory in ACTION_AppSearchReg.
Hans Leidekker [Tue, 27 Oct 2009 09:07:50 +0000 (10:07 +0100)] 
msi: Avoid accessing uninitialized memory in ACTION_AppSearchReg.

Found by valgrind.

15 years agomsi/tests: Fix a couple of user SID string leaks.
Hans Leidekker [Tue, 27 Oct 2009 09:07:25 +0000 (10:07 +0100)] 
msi/tests: Fix a couple of user SID string leaks.

Found by valgrind.

15 years agowininet: Clean up locks after closing libssl and libcrypto.
Hans Leidekker [Tue, 27 Oct 2009 09:04:20 +0000 (10:04 +0100)] 
wininet: Clean up locks after closing libssl and libcrypto.

Found by valgrind.

15 years agowinhttp: Clean up locks after closing libssl and libcrypto.
Hans Leidekker [Tue, 27 Oct 2009 09:04:05 +0000 (10:04 +0100)] 
winhttp: Clean up locks after closing libssl and libcrypto.

SSL_CTX_free() triggers a call to the locking callback.
Found by valgrind.

15 years agowininet: Avoid accessing uninitialized memory in HttpSendRequestExW.
Hans Leidekker [Tue, 27 Oct 2009 09:03:36 +0000 (10:03 +0100)] 
wininet: Avoid accessing uninitialized memory in HttpSendRequestExW.

Found by valgrind.

15 years agowininet: Avoid accessing uninitialized memory in ConvertUrlComponentValue.
Hans Leidekker [Tue, 27 Oct 2009 09:03:14 +0000 (10:03 +0100)] 
wininet: Avoid accessing uninitialized memory in ConvertUrlComponentValue.

Found by valgrind.

15 years agocryptui: Sort certificates by subject name by default.
Juan Lang [Mon, 26 Oct 2009 22:43:21 +0000 (15:43 -0700)] 
cryptui: Sort certificates by subject name by default.

15 years agocryptui: Support sorting columns by clicking on their headers.
Juan Lang [Mon, 26 Oct 2009 22:30:16 +0000 (15:30 -0700)] 
cryptui: Support sorting columns by clicking on their headers.

15 years agomshtml: Fix typo in TRACE.
Andrew Eikum [Mon, 26 Oct 2009 23:02:14 +0000 (18:02 -0500)] 
mshtml: Fix typo in TRACE.

15 years agomshtml: Moved binding list to HTMLDocumentNode.
Jacek Caban [Mon, 26 Oct 2009 22:05:37 +0000 (23:05 +0100)] 
mshtml: Moved binding list to HTMLDocumentNode.

15 years agomshtml: Allow task queue to be used for different targets.
Jacek Caban [Mon, 26 Oct 2009 22:05:10 +0000 (23:05 +0100)] 
mshtml: Allow task queue to be used for different targets.

15 years agomshtml: Moved url and mon to HTMLWindow.
Jacek Caban [Mon, 26 Oct 2009 22:04:28 +0000 (23:04 +0100)] 
mshtml: Moved url and mon to HTMLWindow.

15 years agomshtml: Moved bscallback to HTMLWindow.
Jacek Caban [Mon, 26 Oct 2009 22:03:53 +0000 (23:03 +0100)] 
mshtml: Moved bscallback to HTMLWindow.

15 years agomshtml: Use HTMLWindow in AsyncOpen implementation.
Jacek Caban [Mon, 26 Oct 2009 22:03:29 +0000 (23:03 +0100)] 
mshtml: Use HTMLWindow in AsyncOpen implementation.

15 years agomshtml: Store window reference in nsURI.
Jacek Caban [Mon, 26 Oct 2009 22:02:50 +0000 (23:02 +0100)] 
mshtml: Store window reference in nsURI.

15 years agomapi32: Pass several extended MAPI functions through to provider.
Owen Rudge [Mon, 26 Oct 2009 18:28:01 +0000 (13:28 -0500)] 
mapi32: Pass several extended MAPI functions through to provider.

15 years agomapi32: Use separate pointer for drafts folder when sending via extended MAPI.
Owen Rudge [Mon, 26 Oct 2009 18:19:05 +0000 (13:19 -0500)] 
mapi32: Use separate pointer for drafts folder when sending via extended MAPI.

This patch fixes a crash in the MAPISendMail extended mail wrapper due
to reusing the "folder" variable for two separate objects.

15 years agontdll: Use __asm__ keyword instead of asm in signal_sparc.c.
Yann Droneaud [Mon, 26 Oct 2009 14:33:15 +0000 (15:33 +0100)] 
ntdll: Use __asm__ keyword instead of asm in signal_sparc.c.

15 years agoloader: Use __asm__ keyword instead of asm.
Yann Droneaud [Mon, 26 Oct 2009 14:33:14 +0000 (15:33 +0100)] 
loader: Use __asm__ keyword instead of asm.

15 years agolibwine: Test against __linux__ define instead of just linux.
Yann Droneaud [Mon, 26 Oct 2009 14:36:20 +0000 (15:36 +0100)] 
libwine: Test against __linux__ define instead of just linux.

15 years agomsdaps: Implement ReleaseAccessor Proxy and Stub.
Huw Davies [Mon, 26 Oct 2009 13:48:09 +0000 (13:48 +0000)] 
msdaps: Implement ReleaseAccessor Proxy and Stub.

15 years agomsdaps: Implement CreateAccessor Proxy and Stub.
Huw Davies [Mon, 26 Oct 2009 13:40:40 +0000 (13:40 +0000)] 
msdaps: Implement CreateAccessor Proxy and Stub.

15 years agoinclude: Add access.idl.
Huw Davies [Mon, 26 Oct 2009 13:32:55 +0000 (13:32 +0000)] 
include: Add access.idl.

15 years agoinclude: Flesh out dbs.idl a bit.
Huw Davies [Mon, 26 Oct 2009 13:29:41 +0000 (13:29 +0000)] 
include: Flesh out dbs.idl a bit.

15 years agoinclude: Remove comments around annotation attributes.
Huw Davies [Mon, 26 Oct 2009 12:16:08 +0000 (12:16 +0000)] 
include: Remove comments around annotation attributes.

15 years agowidl: Add support for parsing the annotation attribute.
Huw Davies [Mon, 26 Oct 2009 12:15:23 +0000 (12:15 +0000)] 
widl: Add support for parsing the annotation attribute.

15 years agoappwiz: Ignore apps without title in the list.
André Hentschel [Mon, 26 Oct 2009 12:16:54 +0000 (13:16 +0100)] 
appwiz: Ignore apps without title in the list.

15 years agorpcrt4: Move the full pointer table init to after a potential call to NdrServerInitia...
Huw Davies [Mon, 26 Oct 2009 11:33:39 +0000 (11:33 +0000)] 
rpcrt4: Move the full pointer table init to after a potential call to NdrServerInitializeNew().

15 years agowinetest: Refuse to submit results if we are using native dlls.
Alexandre Julliard [Mon, 26 Oct 2009 12:38:05 +0000 (13:38 +0100)] 
winetest: Refuse to submit results if we are using native dlls.

15 years agowuaueng: Add version resource.
Louis Lenders [Mon, 26 Oct 2009 12:04:27 +0000 (13:04 +0100)] 
wuaueng: Add version resource.

15 years agowuaueng: Add stubbed wuaueng.dll.
Louis Lenders [Mon, 26 Oct 2009 11:49:41 +0000 (12:49 +0100)] 
wuaueng: Add stubbed wuaueng.dll.

15 years agowinmm: Time formats hms/tmsf use leading zeroes as in 00:00:00.
Jörg Höhle [Sun, 18 Oct 2009 15:40:41 +0000 (17:40 +0200)] 
winmm: Time formats hms/tmsf use leading zeroes as in 00:00:00.

15 years agomciwave: Send notification after everything else.
Jörg Höhle [Sat, 17 Oct 2009 14:41:10 +0000 (16:41 +0200)] 
mciwave: Send notification after everything else.

15 years agomciwave: Do not transition via Resume from Record into Play.
Jörg Höhle [Sat, 17 Oct 2009 14:40:28 +0000 (16:40 +0200)] 
mciwave: Do not transition via Resume from Record into Play.

15 years agomciwave: Do not lie about state when winmm fails in Pause or Resume.
Jörg Höhle [Sat, 17 Oct 2009 19:30:33 +0000 (21:30 +0200)] 
mciwave: Do not lie about state when winmm fails in Pause or Resume.

15 years agomciwave: Pause/resume is not accepted from every state.
Jörg Höhle [Sat, 17 Oct 2009 14:37:40 +0000 (16:37 +0200)] 
mciwave: Pause/resume is not accepted from every state.

15 years agod3d10: Parse local_variables.
Rico Schüller [Sun, 25 Oct 2009 16:11:49 +0000 (17:11 +0100)] 
d3d10: Parse local_variables.

15 years agod3d10: Improve parse_fx10_type().
Rico Schüller [Sun, 25 Oct 2009 16:11:46 +0000 (17:11 +0100)] 
d3d10: Improve parse_fx10_type().

15 years agod3d10: Add matrix column major parsing.
Rico Schüller [Sun, 25 Oct 2009 16:11:42 +0000 (17:11 +0100)] 
d3d10: Add matrix column major parsing.

15 years agod3d10: Improve d3d10_variable_type().
Rico Schüller [Sun, 25 Oct 2009 16:11:34 +0000 (17:11 +0100)] 
d3d10: Improve d3d10_variable_type().

15 years agowined3d: Use the native constant limit for fitting private constants.
Stefan Dösinger [Sun, 25 Oct 2009 01:17:22 +0000 (18:17 -0700)] 
wined3d: Use the native constant limit for fitting private constants.

15 years agowined3d: Remove dead code.
Stefan Dösinger [Wed, 7 Oct 2009 20:20:52 +0000 (22:20 +0200)] 
wined3d: Remove dead code.

15 years agowined3d: Take native constants into account when reporting ARB limits.
Stefan Dösinger [Sun, 25 Oct 2009 01:09:52 +0000 (18:09 -0700)] 
wined3d: Take native constants into account when reporting ARB limits.

15 years agowined3d: Use the ARB native constant limit in the GLSL-ARB constants quirk.
Stefan Dösinger [Wed, 7 Oct 2009 20:10:44 +0000 (22:10 +0200)] 
wined3d: Use the ARB native constant limit in the GLSL-ARB constants quirk.

Geforce 8 and Geforce 9 cards support 256 env and 1024 native
constants. 1024 is the hardware limit we want to use if we overwrite
the GLSL reported value with the ARB value on Mac OS (because Mac OS
reports more constants than supported by HW on some cards).

15 years agowined3d: Get rid of the general shader constant limit.
Stefan Dösinger [Sun, 25 Oct 2009 01:05:42 +0000 (18:05 -0700)] 
wined3d: Get rid of the general shader constant limit.

15 years agowined3d: Use the shader backend reported constant limit outside the shader backend.
Stefan Dösinger [Sat, 24 Oct 2009 23:23:34 +0000 (16:23 -0700)] 
wined3d: Use the shader backend reported constant limit outside the shader backend.

15 years agontdll: Implement KeyNameInformation.
André Hentschel [Sun, 25 Oct 2009 14:40:43 +0000 (15:40 +0100)] 
ntdll: Implement KeyNameInformation.

15 years agontdll: Stub for RtlNumberGenericTableElements.
André Hentschel [Sun, 25 Oct 2009 14:35:48 +0000 (15:35 +0100)] 
ntdll: Stub for RtlNumberGenericTableElements.

15 years agokernel32: Implement GetProductInfo on top of ntdll stub.
Alexander Nicolaysen Sørnes [Sun, 25 Oct 2009 14:11:28 +0000 (15:11 +0100)] 
kernel32: Implement GetProductInfo on top of ntdll stub.

15 years agontdll: Add RtlGetProductInfo stub.
Alexander Nicolaysen Sørnes [Sun, 25 Oct 2009 14:09:37 +0000 (15:09 +0100)] 
ntdll: Add RtlGetProductInfo stub.