When you attempt to use the Magnifier button on a Microsoft Comfort 3000 optical mouse, the screen flashes when the magnifier loads

System Requirements:

  • Windows Vista SP1
  • Windows Server 2008

The Problem:

Yet another Vista problem, and it’s not a Driver one.

If you own a Microsoft Mouse, and have the latest version of IntelliPoint installed, chances are that you are aware that the function for the red button on the side is to enable the screen magnifier by default.

This feature is particularly useful if you are visually impaired, however upon moving from Windows XP to Windows Vista you will note that when attempting to load the magnifier, the screen will flash to black, slowly re-draw and once the magnifier window finally loads there will be nothing in it for around a second before the graphics subsystem catches up. To make matters worse, the entire processing of the magnified image becomes very CPU intensive, which interferes with other processes such as text to speech.

More Information:

This is a feature. Joy.

The new Vista Windows Display Manager uses off-screen rendering buffers to supply the GUI with all the nice visual effects that you have become used to in the Vista world. The problem is that when you click the magnification button, the system has to recycle the entire screens worth of data before it can redraw the image. This is compared to the old Windows XP and lower system where each window on the screen was responsible for drawing itself.

The Fix

The following steps will outline how to prevent Vista from completely redrawing the screen when you hit the magnifier. Please note that by doing this you will lose GUI features and fancy effects.

  1. Ensure that you have installed the latest version of Microsoft IntelliPoint (Version 6.3 at the time of writing).
    IntelliPoint is available to download for free from: http://www.microsoft.com/hardware/
  2. Open the Control Panel
  3. Open the System Applet
  4. In the left hand navigation pane select the Advanced System Settings option
  5. Click the Settings button in the performance section of the Advanced tab
  6. Remove the tick box next to Enable Desktop Composition
  7. Click OK twice to return to the control panel. Note that the screen will flash and that Aero effects will be disabled

Error: “Can’t load SMART Utilities library (code 5) Access is denied” when printing to a Samsung Colour Laser Printer CLP-300N

System Requirements:

  • Windows 2000 Professional
  • Windows XP Home, Professional
  • Windows Server 2003
  • Windows Vista

The Problem:

When a user who is not a local/domain administrator prints to your print server you may receive the following error message on the local console account of the Print Server (Windows Server 2003).

SMART UI 32-bits Gateway error
Can’t load SMART Utilities library (code 5)
Access is denied.

SMART code 5 error message

Depending upon your situation, you may receive this error when:

  • Any user attempts to send any print job to the printer via the share
  • When a user attempts to print from Microsoft Internet Explorer and not from other applications

The error occurs using driver 1.63.11 on 2000/XP/2003 and 3.03 under Windows Vista when communicated with a printer server rather than the printer NIC directly.

If you are serving the share from 2000 or XP you shouldn’t see this issue.

More Information:

So you get a new laser printer, and the last thing that you expect is that every time someone tries to print you wind up with a support call to unblock the print queue! Yet this is exactly what Samsung seem to expect you to do.

I didn’t fiddle around when I heard about this, I checked the drivers were up to date and just logged a support call with Samsung who called back – be it 5 hours later than promised…

The support call in summary:

  1. Calls, registers
  2. Explanation of problem that printer needs unblocking every time someone sends a print job
  3. Gets put on call back queue
  4. Call back does happen, but 5 hours later than originally told
  5. Looks on expert system
  6. Expert system draws a blank
  7. Me: “Can I speak to a higher level 1 support agent?”
    Samsung: “No”
  8. Me: “Can I speak to a developer and fault report it?”
    Samsung: “No”
  9. Me: “Can you tell me when the next driver revision is due to be released?”
    Samsung: “No”
  10. Me: “Is there a new driver revision in the pipe-line?”
    Samsung: “I don’t know”
    Me: “Can you find out?”
    Samsung: “No”
  11. Me: “What are you going to do about it?”
    Samsung: “There is nothing that I can do?”
  12. The samsung guy now Google’s the problem and find exactly the same support material that I had already gone through to no avail from a user community web site Samsung guy starts reading it to me, and just to be annoying I interrupted him mid way through and continued to read the same paragraph to him from the same web page ending
    Me: “Yes I can Google too, this doesn’t work”
  13. Samsung guy now tells me to do one of the suggestions on the comments to the Google search result:
    Samsung: “If you format the server that will fix it”
    Me: “Are you out of your mind! I’m not formatting a domain controller to fix a printer problem, especially when the thing was only installed 2 months ago and there is no evidence that it would even fix the problem” (This article exists because it will not fix the problem)
    Samsung: “That is all I can suggest”
  14. Samsung guy now tells me that because there is something on Google he is sure that a developer must be aware of it and will be working on it
  15. Exasperated by this point
    Me: “OK, how about a past driver revision, perhaps if we go back to an older v1 it will sort itself out?”
    Samsung: “No, I can’t do that, I don’t have access to drivers, we can’t give them to you”
    Me: “Can you put me through to someone who can”
    Samsung: “No, there isn’t anyone”
    Me: “Can you escalate this request?”
    Samsung: “No”
  16. Me: “Can you escalate this request with a developer, supervisor or manager?”
    Samsung: “No”
  17. Me: “What do you expect us to do?”
    Samsung: “I don’t know”
  18. I summarised the situation to the monosyllabic individual on the other end of the phone
    Me: “So what you are saying is that as an organisation you find the fact that you’ve just sold us a brand new network laser printer that cannot accept a print job unless an administrator physically logs into the system console and clicks OK to an error message for each and every print job from a non-administrative user? The only advice you are willing to give me is to format an in-use domain controller to fix a printer driver problem and you find this an acceptable solution and are not willing to do anything about it?”
    … and this was the best bit:
    Samsung: “Yes”
  19. I have to say that at that point I pretty much put the phone down with a few monosyllabic intonations of my own, only realising as I did it that I didn’t tell them that they would be removed from the buying list for this.

 

The Moral of the Story

Don’t buy Samsung Printers and certainly don’t bother with their technical support in the UK.

I sincerely hope that someone in Samsung UK does read this page and does take on board the above, because quite frankly there are some serious issues in their support department.

… and yes, Samsung are no longer on any of my or my clients purchase lists.

The Fix

A couple of months went by between the support call and me actually getting around to looking at it properly – a couple of very, very aggravating months by all accounts.

In a nut shell and after some forensic analysis and some perplexing:

When your user sends off a print job to the print server, it trips off a user-level instance inside the spoolsv.exe, which determines ultimately the permissions that the user is going to have for their print job, sets up the print environment and negotiates with the driver to receive validated queue objects.

For some CONVLUTED reason, the Samsung driver is telling the spoolsv.exe process that it needs to make use of NTVDM.exe under the credentials of the user who transmitted the print job.

If you do not know, NTVDM is the NT Virtual Desktop Manager, it is the process wrapper service used to execute 16-bit (yes 16-bit) code under the 32-bit environment of Win32 (in this case).

One question: Why?
This is a printer designed exclusively for use against NT 5.0 and above (Windows 2000+), so why in blazes does it need access to a 16-bit host process to print something?!?!

This is where your having Windows Server 2003 comes into play, because there are security model changes between 2000, XP and 2003 that have caused this problem.

Windows 2000

Under Windows 2000 the default permissions for NTVDM.exe are…

  • Administrators (F)
  • Everyone (R & E)
  • Power Users (R & E)
  • SYSTEM (F)
  • Users (R & E)

Windows XP

Similarly under Windows XP…

  • Administrators (F)
  • Power Users (R & E) [Professional Only]
  • System (F)
  • Users (R & E)

Windows Server 2003

Lastly under Windows Server 2003…

  • Administrators (F)
  • Batch (R & E)
  • Interactive (R & E)
  • Service (R & E)
  • System (F)

The solution should now be self-explanatory, the user/domain user account has no access to NTVDM.exe under Windows Server 2003 by default, therefore you simply need to give the user groups Read & Execute access to the NTVDM.exe on the Widows 2003 Server that you are sharing the printer from and it will solve the access denied problem that plagues this particular driver.

This isn’t a particularly great solution as it means modifying default Microsoft file permissions, however, it will make the printer work without you having to live in front of a console session between 9am and 5pm.

… it just doesn’t explain why it needs access to NTVDM in the first place.

Dell Latitude CSx J500XT (CSx H500XT)

System Requirements:

  • Dell Latitude CSx

The Problem:

Welcome to wonderland Alice!

I was given a Dell Latitude CSx J500XT (Post Screen) – a Latitude CSx H0XT (BIOS) – and wanted to see what this slim line pup was made of. This article simply outlines my playing with the device.

More Information:

It’s quite a natty little device for its age, very light and slim line and it has some teeth given its PIII coppermine back end.

When I originally got my hands on the system, it was billed as being non-functional, was equipped with the following specification:

  • PIII 500MHz
  • 128MB PC100 DIMM
  • 20GB Hitachi Hard Drive
  • Windows NT 4.0 Workstation

Windows 2000

A system with a PIII and 384 MB of RAM can hack something a little more modern than NT 4.0 (not that I have anything against NT 4.0 mind), so I figured that I would try Windows 2000 SP4 (see my slipstream guide) on the system. There was a slight problem however.

No CD/DVD Drive. This system is slim line, and cannot accept the usual Dell modular bay hardware, instead it is supposed to have an external bay device caddy for the drive and a cable that attaches to the port replicator on the right hand side – neither of which I had. Incidentally, I have since discovered that the part number required is 10NRN External Media Cable.

I pulled the disk out and threw it into a Latitude CPi, wiped the disk, partition tables and FDisk /mbr’d the system. I then copied the i386 folder from the slipstream disk onto the device and threw it back into the CSx. Would it boot? Like hell!

To cut a very long story short, I had to perform some rather deep scrubbing of the 512 KB boot sector on the disk, because for some reason unbeknownst to me, none of my standard disk tools seemed able to scrub the boot sector on the hard disk, and the install process that embeds NTLoader onto the disk wasn’t able to over-write it either! So one assumes that the disk must be damaged

  • ChkDsk
  • ScanDisk
  • Partition Magic
  • SeaTool for DOS
  • Replacing the hard disk and installing a known working Seagate of equal capacity

Nothing after purging that drive using all of these standard tools and fixes.

  • FDisk
  • PowerQuest Partition Magic
  • Acronis
  • Windows 2000 Setup

None of these could get it. To cut this story short, in the end I discovered a nice little utility that blitz ‘d the disk’s first few sectors at the hardware level and it whirred back into life, installing Windows 2000 in a comfortable amount of time and working very nicely.

Grab the chipset driver and the graphics drivers from the Dell website and get them on the install – the NeoMagic driver offers you a little more control over the TV output and screen settings on the motherboard.

Windows XP

You have to try don’t you. I used a PIII 733 Dell Inspiron 3800 for several years with Windows XP and 384 MB RAM, so theoretically the performance level shouldn’t be that much different, particularly given that I have installed a larger, faster hard drive in the CSx.

Again, the installation had to take place using a local system i386 install process from a DOS prompt – hooray for my new multi-mode (ATA, 2.5″ ATA and SATA) to USB hard drive converter.

RAM Upgrade

The first thing that I always do (of course) is update the firmware of my equipment, so I hit the BIOS up to the latest A13 and found and loaded a firmware update for the Hitachi hard drive in the device.

According to Dell, Crucial and Kingston, the maximum RAM that this system can take is a rather unusual 320 MB (256 MB + 64 MB). Well, I had a 256 MB DIMM and a box full of 128’s lying about, so I threw them in there, expecting it to beep code at me, and…

BIOS With 384MB

Here the device is, posting and happily running with 384 MB (256 MB + 128 MB) in the BIOS.

I then came into possession of another 256MB chip, this time a PC133 CAS latency 3 chip (you can tell by the chip label, CL3 chips are PC133-333-520). This refused to POST at all, so assumed that it had made the maximum RAM, however fortuitously I came into another 256MB chip, this time a CL2 chip (PC133-322-620) and tried again.

The Latitude CSx H500XT posted with 512MB of PC133, loaded Windows XP and to this day still runs happily with 512MB and XP SP3. Proving that you can’t really rely upon the manufacturer or RAM supplier sites to have a clue about exactly what systems are capable of to begin with.

The Processor

Dell shipped this notebook with a:

  • Intel Mobile Pentium III
  • 500MHz
  • 100MHz FSB
  • 256 KB L2 Cache
  • Specification Finder Code: SL43P

I, on the other hand, happened to have one of these (a x86 Family 6 Model 8 Stepping 3):

  • Intel Mobile Pentium III
  • 650MHz
  • 100MHz FSB
  • 256 KB L2 Cache
  • Specification Finder Code: SL442
sSpec Number SL43P SL442
CPU Speed 500 MHz 650 MHz
Bus Speed 100 MHz 100 MHz
Bus/Core Ratio 5 6.5
L2 Cache Size 256 KB 256 KB
L2 Cache Speed 500 MHz 650 MHz
Package Type Micro-PGA2 Micro-PGA2
Manufacturing Technology 0.18 micron 0.18 micron
Core Stepping PB0 PB0
CPUID String 0683 0683
Thermal Design Power 16.8 w 21.5 w
Thermal Specification 100c 100c
VID Voltage Range 1.6 v 1.6 v / 1.35 v

PIII SL422

It doesn’t seem illogical to assume that this CPU would operate in the Latitude, and one would be correct with that sentiment… with a but. The system does not seem to actually acknowledge the extra megahertz that it has in it. According to the Windows System Information tool, the operating system is operating at 489 MHz (Exactly the same as with the original 500 MHz chip in it).

Jumpers (Click to Enlarge)The Intel Processor Frequency ID utility identifies the processor as running at 500MHz, but curiously also states that it was expecting 500MHz to begin with! I find this rather odd.

Finally, the Dell BIOS does not properly detect the processor. On the initial overview screen (shown at the top of this article), the processor is listed as:

  • Intel(R) SpeedStep(tm) 0/0 MHz

Perhaps more interestingly, the configuration option for the CPU boot compatibility mode now toggles between compatible and “0 MHz” – quite a feat!

This tells me that there must not be any headroom in the Dell BIOS programming for additional microcodes on this system – or that the multiplier has been hard locked on the board. I had a look around the motherboard and there is not much in the way of jumpers to configure, the only ones that are visible on the top side can be seen in the photo on the right (click to enlarge). I was not willing to fully disassemble the system and check the back of the board, however knowing Dell, there would not be a hardware option to change the multiplier.

 

I did of course experiment with tripping the four J8 pins, and each time, without fail, and no matter what the combination, the system would not boot – or even power on. I have no idea what this header is for, however it doesn’t appear to do anything to the processor. If anyone else is looking for information on upgrading the processor in the Latitude CSx series, then there is your answer, unless you happen to know of a BIOS hack/trick that can be used to modify the multiplier and get the system past the 500MHz barrier.

I have left the 650 MHz processor in the Latitude, it runs quite well with it in, with no obvious thermal issues or instability (and you never know your luck, the hardware monitors could be reporting incorrectly).

If you would like a photo of the top-side of the motherboard – click here.

Experiment: Using a SoundBlaster Live! Drive II with an Audigy 2 ZS

System Requirements:

  • Windows 2000, XP, Vista
  • SoundBlaster Audigy 2 ZS
  • Live Drive II (Live!Drive 2)

The Problem:

I happened to have an Audigy 2 ZS with the Audigy Platinum Live Drive header, and a Live!Drive 2 from a SoundBlaster Live! Platinum.

The Question: could it work against the Audigy 2?

More Info:

Nope. Although the cable and connectors pin out (be it in reverse, requiring a 180 degree rotation of the Live Drive 2 bus cable) and the system starts, sound functions from the Audigy PCI card work correctly. The outputs on the Live Drive II emit a meaningless buzzing, and no interfaces on the Live Drive are able to function or are acknowledged by the Creative driver.

I tried, we failed.