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.
My mistake, there is an import library, I should have taken a look at my lib folder...
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.
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....
Thanks, I think I should go deeper into the DDK by myself.