Okay, so I finally figured out why the binary wasn't writing to the log file.

The code was commented out.

I can build it, so I modify the code.  I always copy the file and make a backup of the original.  Then, I go to down on the old file.  Rebuild.  Errors.  Okay.  Some more stuff needed to be actually uncommented out.  You can't have a:

dwMyDwordValue = 10;

and not have

DWORD dwMyDwordValue;

up above it.  Yeah, that's real basic C programming, but heck, who'd know if you didn't write it all yourself?

Well, I got the log and it showed me the problem.  I didn't have to kernel debug after all.  I was able to provide a solution to the customer, so I 'm hoping all is well now.  Basically, with the other service (I think it's a third party service) that was running, our workstation service wasn't loading fast enough for webclient.  If you make webclient dependent upon LanManWorkstation, it works.

Makes sense as to why you could boot with webclient turned off and actually run it fine.  The issue was related to timing.

That logging ability was nice.  I'm checking with our dev folks to see if we can send that logging binary to customers.  Please don't email me and ask me for it.  If I need to, I'll know when to use it.

Would it have been easier to kernel debug to begin with?  Probably, but I wouldn't have learned how to log this stuff and that may pay off big time in the future over and over again.  I hope so.