kernel mode concept doubt

Discussion in 'Windows Vista Drivers' started by qwert, May 29, 2008.

  1. qwert

    qwert Guest

    we set completion routines in our drivers using Iosetcompletionroutine
    function.
    this completion routine is called by the lower driver when it completes the
    request.
    It means that the pointer of the upper driver's completion routine is been
    accessed from the lower driver.
    In user space we have a concept of process context where other process
    memory is not accessed from other process.
    Does it mean in kernel mode all the memory space are shared.any driver can
    get the pointer to any other drivers routine???
    I dont know whether this above question seems stupid or not.
    Thanks in advance
     
    qwert, May 29, 2008
    #1
    1. Advertisements

  2. qwert

    David Craig Guest

    The lower driver does not call the completion routine of the next driver.
    They call IoCompleteRequest that goes to the IoManager which does what needs
    to be done. So many wrong conclusions except for the last one which you
    thought was a stupid idea/question. Yes, Microsoft was not very protective
    when they designed the kernel interfaces and so any driver can crash the
    system by writing over data or code that belongs to other kernel components.
    I will say that this is very common in operating systems in that device
    drivers have full access to all the system. The only one I can think of at
    the moment is the old Novell Netware where drivers ran in ring 1, something
    that was not possible for Windows NT when it began and even now with IA64
    support still being around for servers.
     
    David Craig, May 29, 2008
    #2
    1. Advertisements

  3. Does it mean in kernel mode all the memory space are shared.any driver can
    Yes, except the current process's page tables, but they are hidden from you
    anyway.
     
    Maxim S. Shatskih, May 29, 2008
    #3
    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.