{"id":37573,"date":"2004-10-14T07:00:00","date_gmt":"2004-10-14T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2004\/10\/14\/the-procedure-entry-point-shcreatethreadref-could-not-be-located\/"},"modified":"2004-10-14T07:00:00","modified_gmt":"2004-10-14T07:00:00","slug":"the-procedure-entry-point-shcreatethreadref-could-not-be-located","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20041014-00\/?p=37573","title":{"rendered":"The procedure entry point SHCreateThreadRef could not be located&#8230;"},"content":{"rendered":"<p><P>\nSome people smarter than me have been working on this problem, and\nhere&#8217;s what they figured out.  First, I&#8217;ll just reprint their\nanalysis (so that people with the problem and are searching for\nthe solution can find it), and then we can discuss it.\n<\/P>\n<P>\n<STRONG>Update (18 October 2005):\n<A HREF=\"http:\/\/support.microsoft.com\/kb\/888162\">\nThe official version of this document is now available<\/A><\/STRONG>.\nPlease use that version instead of following the steps below, which\nwere based on a preliminary version of the instructions.\n<\/P>\n<BLOCKQUOTE CLASS=\"m\">\n<STRIKE>\n<P>\nIf you receive an error message: &#8220;Explorer.EXE &#8211; Entry Point Not Found &#8211;\nThe procedure entry point SHCreateThreadRef could not be located in the \ndynamic link library SHLWAPI.dll&#8221;,\nthis information will help resolve the issue. \n<\/P>\n<P>\nThis appears to have been caused by the following sequence of events:\n<\/P>\n<OL>\n<LI>\nYou installed Windows XP Service Pack&nbsp;2\n<LI>\nThe installation of Service Pack&nbsp;2 failed due to a computer crash\nduring the installation which resulted in the automatic\nService Pack Recovery process.\nOn next boot, you should have received an error message telling you\nthat the install failed, and that you need to go to the control panel\nand uninstall SP2 and then try re-installing it.\nThis message may have been dismissed accidentally\nor by another individual using your computer.\nIn any event, the Service Pack recovery process was not completed\nby uninstalling the service pack from the Add\/Remove Programs control panel,\nand the system is consequently\nin a partially installed state which is not stable.  \n<LI>\nYou then installed the latest security update for Windows XP,\nMS04-038, KB834707.\nBecause your system is still partially SP2,\nthe SP2 version of this fix was downloaded\nand installed by Windows Update or Automatic Updates.\nHowever, the operating system files on the system\nare the original versions due to the SP Recovery process.\nThis results in mismatched files causing this error.\n<\/OL>\n<P>\nTo recover the system, carefully perform the following steps:\n<\/P>\n<OL>\n<LI>\nBoot normally and attempt to log in to your desktop.\nAt this point you should get the error message listed above.\n<LI>\nPress Control+Alt+Delete at the same time to start the Task Manager.\n(If you are using classic logon, click the &#8220;Task Manager&#8221; button.)\nYou may get additional error messages but Task Manager will eventually start. \n<LI>\nOn the menu bar, select File and then New Task (Run).\n<LI>\nType in\n<CODE STYLE=\"border: solid .75pt black;padding: 1pt\">control appwiz.cpl<\/CODE>\ninto the new task box and hit OK.\nYou may get additional errors that can be ignored.  \n<LI>\nThe Add\/Remove Control Panel should now be running.\nYou can close Task Manager.\n<LI>\nNear the bottom of the list,\nfind the entry titled &#8220;Windows XP Hotfix &ndash; KB834707&#8221;.\n<LI>\nClick on it and click the &#8220;Remove&#8221; button.\nIt will take some time to complete.\nOnce the &#8220;Finish&#8221; button is visible, click on it and reboot your system.\nIf you get messages about additional software or hotfixes installed,\nyou can safely ignore them. \n<\/OL>\n<P>\nDo NOT stop now!\nYour system is still in the &#8220;failed SP2 install&#8221; state.\nYou MUST complete the SP2 uninstall, and then re-install SP2.\n<\/P>\n<OL START=\"8\">\n<LI>\nStart the system and log in.\n<LI>\nClick on Start and then Control Panel.  \n<LI>\nClick on the Add\/Remove programs item.\n<LI>\nNear the bottom of the list,\nfind the entry titled &#8220;Windows XP Service Pack&nbsp;2&#8221;. \n<LI>\nClick on it and remove Service Pack&nbsp;2.\nYou may get a warning about software you have installed after SP2.\nMake a note of it as you may need to reinstall some of them\nafter the uninstall operation. \n<LI>\nAfter Service Pack&nbsp;2 has been successfully removed,\nyou should visit\n<A HREF=\"http:\/\/www.microsoft.com\/sp2install\">\nhttp:\/\/www.microsoft.com\/sp2install<\/A>\nfor instructions on installing Service Pack&nbsp;2.\nYou can get SP2 from\n<A HREF=\"http:\/\/windowsupdate.microsoft.com\">\nhttp:\/\/windowsupdate.microsoft.com<\/A>.\n<LI>\nAfter Service Pack&nbsp;2 has been successfully re-installed,\nyou should re-visit Windows Update to get\nthe proper version of the latest critical security updates.\n<\/OL>\n<P>\nFAQ:\n<\/P>\n<P>\nQ:  I don&#8217;t believe I am in the &#8220;partially installed SP2&#8221; state.\nIs there any way to check that?\n<\/P>\n<P>\nA:  After step 7, your system should be able to log in.\nThere are several ways to check.\n<\/P>\n<OL>\n<LI>\nOpen the file c:\\windows\\svcpack.log,\nand scroll to the very bottom of the file.\nAbout 10 lines from the end, you should see:\n<PRE>\n0.xxx: Executing script \\SystemRoot\\sprecovr.txt\n0.xxx: In cleanup mode. System will not be rebooted.\n<\/PRE>\nIf you have these lines in svcpack.log,\nand you did not uninstall Service Pack&nbsp;2 in Add\/Remove Programs,\nyou definitely have a machine in this partially installed state. \n<LI>\nClick on the Start button, then Run, and type\n<CODE STYLE=\"border: solid .75pt black;padding: 1pt\">winver<\/CODE>,\nthen click OK.\nIf the version is\n&#8220;Version 5.1 (Build 2600.xpsp_sp2_rtm.040803-2158: Service Pack&nbsp;2&#8221;\nthen you have the correct SP2 install.\nIf, however, it has a number that is less than 040803 after the xpsp2,\nsuch as &#8220;Build 2600.xpsp2.030422-1633 : Service Pack&nbsp;2&#8221;\nthen you definitely have a machine in the partially installed state.\n[Corrected typo in version numbering, 11am.]\n<\/OL>\n<\/STRIKE>\n<\/BLOCKQUOTE>\n<P>\nNotice that\n<A HREF=\"http:\/\/weblogs.asp.net\/oldnewthing\/archive\/2003\/09\/01\/54734.aspx\">\nthe default answer to every dialog box is &#8220;Cancel&#8221;<\/A>.\nThe Service Pack setup program detected a problem and gave instructions\non how to fix it, and yet people just ignored the message.\n<\/P>\n<P>\nThe result of not fixing the problem is that you are left with a machine that\nis neither Service Pack&nbsp;1 nor Service Pack&nbsp;2 but instead\nis a Frankenstein monster of some files from Service Pack&nbsp;1 and\nsome files from Service Pack&nbsp;2.\nThis is hardly a good situation.\nHalf the files are mismatched with the other half.\n<\/P>\n<P>\nThere was enough of Service Pack&nbsp;2 on your machine that\nWindows Update downloaded the Service Pack&nbsp;2 version of the\nsecurity patch and tried to install it.  This made a bad situation worse.\n<\/P>\n<P>\nWhat&#8217;s the moral of the story?\n<\/P>\n<P>\nFirst, that users ignore all error messages.\nEven error messages that tell how to fix the error!\nSecond, that ignoring some error messages often leads to worse error messages.\nAnd third, that once you get into this situation, you&#8217;re off in\nuncharted territory.  And there are only dragons there.\n<\/P>\n<P>\n(These are the types of problems that are nearly impossible to\ndebug:  It will never happen in the test lab, because the test lab\npeople know that when an error message tells you, &#8220;The install failed;\nyou need to do XYZ to fix it,&#8221; you should do it!  All you can work\nfrom are descriptions from people who are having the problem, and\na lot of creativity to try to guess &#8220;What happened that they aren&#8217;t\ntelling me?&#8221;)\n<\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some people smarter than me have been working on this problem, and here&#8217;s what they figured out. First, I&#8217;ll just reprint their analysis (so that people with the problem and are searching for the solution can find it), and then we can discuss it. Update (18 October 2005): The official version of this document is [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[104],"class_list":["post-37573","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-tipssupport"],"acf":[],"blog_post_summary":"<p>Some people smarter than me have been working on this problem, and here&#8217;s what they figured out. First, I&#8217;ll just reprint their analysis (so that people with the problem and are searching for the solution can find it), and then we can discuss it. Update (18 October 2005): The official version of this document is [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/37573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=37573"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/37573\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=37573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=37573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=37573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}