Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Re: Problem With Macros

OSR_Community_UserOSR_Community_User Member Posts: 110,217
[email protected] said:
> There is a macro "errno" in stddef.h which is a standard include file
> provided with microsoft. The problem comes when I want to define my
> own version of "errno".

Two things:

First, errno is an ANSI standard thingy. A compiler is allowed to provide
it as a macro, but need not, and often does not. What you are attempting
to do is highly non-portable.

Second, there is simply nothing you can do about all the other DLLs and
libraries that are already compiled with the definition of errno that
you see.

[email protected] said:
> First errno is not a macro, its a variable.

Not always. ANSI-C does not say yes or now. It is typical for errno to
be a variable, but it is often a macro (that calls a function) in
multi-threaded environments. All that ANSI-C says is that it must be
a valid l-value.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 January 2023 Live, Online
Developing Minifilters 20 March 2023 Live, Online
Internals & Software Drivers 17 April 2023 Live, Online
Writing WDF Drivers 22 May 2023 Live, Online