Gisle Vanem asked:
> > I prefer to avoid the ntdll.dll API when possible.
> 
> Okay, what's wrong with that?

1) It's a violation of abstraction. Diagram:

         Programs
             |
    Windows API (kernel32.dll etc.)
             |
          NT API (ntdll.dll)
             |
        NT kernel

   Programs should use only topmost API layer.
   When you use a mix between two or more layers, i.e. when you circumvent
   the topmost API layer, in my experience this causes big problems in the
   long run.

2) The code you pointed to uses the function NtQueryObject. However, the
   Microsoft documentation
   
<https://docs.microsoft.com/en-us/windows/desktop/api/winternl/nf-winternl-ntqueryobject>
   states "This function may be changed or removed from Windows without
   further notice."

3) Probably code will run better on ReactOS or WINE if they don't use the
   lower layers.

Bruno


Reply via email to