Microsoft Photo Editor–Error Reading File

Microsoft_Photo_EditorWe had a user report this error when he was trying to edit a photo taken with his Canon DIGITAL IXUS 80 IS Camera.

After much investigation, I’ve told the user that this "… Office 97/2000 bundled utility has a fault with it.  It does not support larger images produced by your camera.  And as it is no longer supported by Microsoft, there is little more we can do.  Here are some freeware alternatives …"

The following is not an answer to the problem, but what I found out:

Wikipedia – Microsoft Photo Editor
“Version (and possible other versions) had an issue opening large JPEG photographic images, due in part to its age. The maximum file size is approximately 2 MBs. Large Windows bitmap BMP files can be opened in Microsoft Photo Editor. This suggests an error associated with the decompression logic of the application."

Maybe caused by an "out of range" problem???

The user’s photo was 3264(w)x2448(h) at 180dpi.
If I reduced the height from 2448 pixels, to 2048 pixels; the photo would load in Photo Editor.
So my first theory was that height is limited to 2048.

That theory lasted all of 10 minutes.  Took a different photo and scaled it down to 2731×2048.  It error-ed in Photo Editor.  The only difference I can see between the two 2048 high photos, is the “Compressed bits/pixel" value, 3 vs 5.

So I haven’t gotten to the root cause of the problem, apart from it being a out of range/buffer overflow type error.


NTLMSSP is the security provider for NTLM, in case you were wondering.  I learnt about it as I was trying to write a log file to a DFS share in a different domain, and I was getting a “Path not found” error.

The client computer could see the network folder it was trying to write to, so I started up PROCMON and watched the traffic.  This was the error which occurred:


Wasn’t anything bad about that network name, so I connected up a network sniffer.  It told me that NTLMSSP was returning STATUS_MORE_PROCESSING_REQUIRED message.

My friend Google, wasn’t of any help to me, so here is what I think was going wrong.


The LogPath was pointing to a DFS share in the CENT domain.
The TOLERDO and CONTOSO have cross-domain trusts, so their users can write to the CENT DFS share.


The problem.
The DFS request meant that the TOLERDO user, accessing the CENT domain, needed their credentials validated against the TOLERDO domain.

This credential validation is exceeding some sort of SMB timeout, and throws a "STATUS_MORE_PROCESSING_REQUIRED" message.

The credential validation path would look like this:
TOLERDO client –> CENT Server –> TOLERDO Domain Server –> CENT Server –> TOLERDO Client.  (a path too long I suspect).

The "STATUS_MORE_PROCESSING_REQUIRED" message then leads to a "STATUS_BAD_NETWORK_NAME" error being passed back to VBscript.
Which VBscript is interpreting as a "Path Not Found" error.


The solution?
In the TOLERDO domain, create a DFS Link to the CENT folder.
This causes the TOLERDO client to validate against the TOLERDO domain, and allows the log file to be written.

(the NTLMSSP message/error was one of the reasons I modified the SMS Client Health Startup script to allow for multiple domains).

The Win 16 Subsystem has insufficient resources …

Sometimes, you don’t ever expect to ever see a particular error message ever again.
Error message: The Win 16 Subsystem has insufficent resources to continue running.  Click on OK, close your applications, and restart your machine.

It’s been over 5 years since the last time I saw this error, quite possibly on a Windows NT4 system in 2002.

The problem was reported to me as the  "FooBat" application does not start when the user launches it.  Reading the actual error message, it tells us the actual problem.  And it’s not the “FooBat” application.   The problem is that Windows is unable to allocate any more memory to the 16-bit program handler.

This sort of problem just doesn’t happen anymore.  So I looked at NODDYPC’s Event Log, nothing real unusual there.  So I then looked at the what was running in memory:
C:\Toolbox>pslist \\NODDYPC

pslist v1.28 - Sysinternals PsList
Copyright ® 2000-2004 Mark Russinovich

Process information for NODDYPC:

Name                Pid Pri Thd  Hnd   Priv        CPU Time    Elapsed Time
Idle                  0   0   2    0      0  1333:24:32.750     0:00:00.000
System                4   8  68 1661      0     0:18:49.578     0:00:00.000
smss                572  11   3   19    176     0:00:00.046   674:54:40.395
csrss               936  13  13  705   1868     0:08:33.984   674:54:37.738
winlogon            960  13  19  644  10152     0:03:20.093   674:54:36.707

There is a clue there, and it is the amount of CPU Time the Idle process has used.  1333 hours works out to 55 days of idle-ness.

So how long has NODDYPC been running?

C:\Toolbox>psinfo \\NODDYPC

PsInfo v1.75 - Local and remote system information viewer
Copyright (C) 2001-2007 Mark Russinovich
Sysinternals -

System information for \\NODDYPC:
Uptime:                    28 days 2 hours 55 minutes 46 seconds
Kernel version:            Microsoft Windows XP, Multiprocessor Free
Product type:              Professional
Product version:           5.1
Service pack:              3
Kernel build number:       2600
Registered organization:   Office of the Yellow Taxi
Registered owner:          Toyland
Processors:                2

My advice to our support technician?  Reboot the computer and the problem will be magically solved.  Which is what the last part of the error message states – “… restart your machine.”

“But why 55 days of idle-ness, when the computer has only been up for 28 days?”, I hear you ask.
NODDYPC has 2 processors, and the 1333 hours total is for both processors.

Bookmark and Share

It’s fairly simple, a bug

is a fault in software, or hardware for that matter, which breaks something.
For example, if you make software which links my Microsoft Calendar to my Google Calendar, and your software duplicates all my calendar entries, it’s a bug.  Not an undocumented feature.

An undocumented feature, is a feature which is undocumented.  Such as the (in)famous Squeaky Lobster performance counter switch in Microsoft Exchange 5.5.  An undocumented feature is not a bug! I will smite the next vendor who uses that term with me.

A Feature, is an element of software, or hardware, which has been tested, publicised, and should work “out of the box”.  It should not require me to spend two hours reverse-engineering code, to unravel the original developer’s “brilliance”.
When I say “brilliance”, I mean a convoluted piece of code crap that even the original developer would disown like the bastard child it surely is.

Bookmark and Share

Windows 7 + 4GB RAM + NVidia USB chipset = FAIL

hotfix_icon Which summed up my Windows 7 PC.

The FAIL bit was that when I’d do a large USB file copy, without fail (no pun intended), I’d get a DRIVE IS NO LONGER RECOGNIZED error.

Then all my USB ports would fail to work.  To recover, meant rebooting my computer.

The problem got REALLY annoying.  I’d be copying podcasts to my MP3 player, and it’ll fail.  Or when I was trying to sync my Windows Mobile phone, and it’ll fail.

Microsoft released a patch late January, and since then I have been USB crash free.  You can read all about the patch here:
You encounter problems when you move data over USB from a Windows 7 or Windows Server 2008 R2-based computer that has an NVIDIA USB EHCI chipset and at least 4GB of RAM

 Bookmark and Share

“… No Terminal Server License Servers available …”

The remote session was disconnected because there are no Terminal Server License Servers available to provide a license.  Please contact the server administrator.

Strangely enough, I see this error occasionally when I connect to our corporate Citrix server farm.  Googling for the answer, I found Microsoft’s answer, which was less than helpful.

As my (Citrix) server administrators are only two desks away, I asked

“What gives???”

Windows does that, the fix is to delete the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing registry entry.

You can either do that manually, or use the registry file I created here.

Bookmark and Share