Thread: Low-level graphic client

  1. #1
    Amateur
    Join Date
    Sep 2003
    Posts
    228

    Low-level graphic client

    Good morning everyone (here it is morning),

    Today's question is about the low-level graphic client known as NtGdi. I would like to know a little more about these functions found in the ntgdi.h. I've tried a search on google but MSDN is not talkative at all. I can't even figure out if they (the functions) are here for driver development purpose or for us to use with the drivers or something... Besides, the function prototypes do exist though there's no import library, just as mentionned in MSDN.

    If anyone know, please share a little of your knowledge with me.
    Thanks in advance.

    [edit]My mistake, there is an import library, I should have taken a look at my lib folder...
    Last edited by lyx; 10-21-2003 at 11:06 PM.

  2. #2
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    Read about it here.

    gg

  3. #3
    Amateur
    Join Date
    Sep 2003
    Posts
    228
    Thanks but I've already found that, but it's quite confusing to me. If you could tell me more, in a simplier way, just what it is used for.

  4. #4
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    Unless you are developing a GDI driver or creating a driver to allow DirectX use of your hardware, then you shouldnt really need use of these functions.

    When you call a user mode GDI API (like many of the functions described in MSDN), the function is little more than a stub for one of these lower level functions (these stubs will probably also check parameters to avoid exceptions in kernel mode, and also alter the ring that the current thread is operating in - user mode threads cannot easilly access kernel mode code without this transition). One main difference is, that the API you called will almost always be called the same, with the same params and from the same system dll no matter what version of windows you run (unless there's a change of API which will be documented in MSDN), but the eventual kernel mode function that does the work or passes the job even lower might be completely different depending on what version of windows you run.
    This is how a program written on for Win98 might run exactly the same on WinXP. If your code relies on these low level funcs you face the risk that you need a new version of the prog for each version of windows (along with the other anoyances like constant BSODs for minor errors, having to copy memory between user mode & kernel mode and having to mess with the thread levels all the time)

    If you really want more knowlege of these funcs, look for the Windows DDK relating to your version of windows (MS will ship this to you) and also there's a DXDDK available....

  5. #5
    Amateur
    Join Date
    Sep 2003
    Posts
    228
    Thanks, I think I should go deeper into the DDK by myself.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Low level program to save a mjpeg stream
    By Rufe0 in forum Linux Programming
    Replies: 6
    Last Post: 09-22-2009, 05:53 AM
  2. C/C++, low or high level?
    By Sentral in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 01-23-2007, 11:43 PM
  3. Low Level Hard Disk Access
    By samGwilliam in forum Tech Board
    Replies: 5
    Last Post: 04-01-2005, 06:14 PM
  4. Low Level Drive Access?
    By coldfusion244 in forum C++ Programming
    Replies: 1
    Last Post: 03-09-2005, 08:19 AM
  5. Low level debuggers
    By Korn1699 in forum C++ Programming
    Replies: 8
    Last Post: 03-27-2002, 01:39 PM