Checked build vs. Free build

Discussion in 'Windows Vista Drivers' started by May, Dec 5, 2007.

  1. May

    May Guest

    What is the different checked build windows vs. Free build windows in a
    hardware point of view? Because there are two PCI products from my company
    will either get blue screen or hard frozen with Checked build Windows 2003
    server, but not free build Windows 2003 server.

    I will be appreciate very much for your help,


    May, Dec 5, 2007
    1. Advertisements

  2. May

    Don Burn Guest

    The major differences between checked and free are:

    1. Checked is compiled with debug (i.e. no-optimzation)
    2. Checked has a large number of DbgPrint statements that are not compiled
    in on free
    3. Checked has a ton of assertions active which are not in the free build

    The last one is the most likely cause of your problem. Connect up WinDBG
    and see what is going on.

    Don Burn (MVP, Windows DDK)
    Windows 2k/XP/2k3 Filesystem and Driver Consulting
    Remove StopSpam to reply
    Don Burn, Dec 5, 2007
    1. Advertisements

  3. May

    May Guest

    Hi Don,
    Yes, I did connect to Windbg in both cases. But I didn't get any more
    information since one I got hard hang, whole system totally frozen, no info
    in Windbg. The other one I got "interrupt storm", but hardware engineer have
    done all kind of check, and experimental test, have not found any solution.
    Is there anything else I can do to find out the problem?


    May, Dec 5, 2007
  4. May

    Tim Roberts Guest

    Does the interrupt storm happen right away? Is it possible you are
    enabling interrupts on your device before you call IoConnectInterrupt?
    Because the checked build has so much more validation going on, things take
    Tim Roberts, Dec 6, 2007
  5. May

    May Guest

    No, it is not right away. It was after or before login windows appear in
    different computer. We have checked, interrupt on device is disabled when
    this happen. It is after driver loaded normally, so we can check the
    interrupt enable/disable register, it was disabled. This happen even without
    driver installed, interrupt register by default is disabled.

    Any other possibility to check or concern?


    May, Dec 6, 2007
  6. You said without your driver installed, but is your hardware there? You
    could have another bad device and or driver.

    My attitude would be to assume it's my driver. I'd start setting breakpoints
    in DriverEntry and stepping through everything till I lost control.

    Did you run Prefast on your driver during build? If XP did you build for CUV
    and then enable verifier?

    Can you boot to Safe Mode?
    Gary G. Little, Dec 6, 2007
  7. May

    May Guest

    See below, inline:

    Yes, hardware is there. I have tried different hardware, it is same result.
    So it is not the bad device. Also, the same reult with/without driver loaded,
    so it is not driver problem.
    Yes, I did prefast on my driver. Nothing fund.
    No, it couldn't boot on safe mode too.
    Anything else to check could help?


    May, Dec 7, 2007
  8. If you remove your company's device, but keep all other devices installed,
    does the same problem still occur? The noisy card might be from another

    Norman Diamond, Dec 7, 2007
  9. May

    May Guest

    Hi Norman,
    No, if I remove my company's device, keep all other devices installed, the
    same problem dose not occur.


    May, Dec 7, 2007
  10. Is your device sharing an interrupt? If so, then can you experiment by
    disabling the driver for the other device? If the other device doesn't know
    that their interrupt should be sharable, they might be causing problems.

    If you're sharing an interrupt with your boot drive then you can't do this
    experiment ^_^
    Norman Diamond, Dec 7, 2007
  11. And your interrupt service handler is returning TRUE if the interrupt was
    genereated by your card, otherwise FALSE?
    Gary G. Little, Dec 7, 2007
  12. May

    Calvin Guan Guest

    What bus i/f is it?

    If (PCI || PCIx) {
    if (you have a PCI/PCI-X analyze) {
    hook it up and watch the INT cycle;
    } else if (you have a scope) {
    use a high impedance proble to probe the INTA/B/C/D pin, note that
    the signal is active low.
    } else if (PCIe) {
    hook up a PCIe analyer, watch the ASSERT_INTA message and ACK, or the msg
    DMA write if you are using MSI
    Calvin Guan, Dec 14, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.