Best way to do writes to physical address in a loop with sub-millsec interval between writes.

Discussion in 'Windows Vista Drivers' started by Praveen Kumar Amritaluru, Sep 24, 2008.

  1. Hi,

    I got a requirement from a different team who is looking for a utility to
    write to a physical address in a continous loop.
    The time between successive writes to the physical address cannot be more
    than 500us.
    The system is a multi-proc system running Vista.
    The physical address is an address that will appear on FSB and not
    intercepted in cache.
    Choosing physical address is not a problem, plan was to use memory-mapped
    PCI config space.

    What is the best way to go about providing this feature request?
    Is there an utility already present?

    Praveen Kumar Amritaluru, Sep 24, 2008
    1. Advertisements

  2. Praveen Kumar Amritaluru

    matt_sykes Guest

    This is impossible to implement exactly on Windows. Windows is not a
    real time OS, it does not guarantee this kind of precision of timing
    and any thread in which you have such a loop can be interrupted by
    anyother higher priority thread or request.

    So the closest you will get is to have a delay in your loop that
    generally will work. You cant use a timer for that delay, the system
    timers granularity is 10ms, so you will have to use
    KeStallExecutionProcessor(); between writes.
    matt_sykes, Sep 25, 2008
    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.