Search code examples
cwindowsdevice-driver

What does IN mean in Windows device driver functions?


I'm starting to learn how to program Windows drivers but can't seem to find anywhere that contains the definition of IN located in the argument declarations of functions. For example:

NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, 
                      IN PUNICODE_STRING RegistryPath)

Could someone please explain what IN means?


Solution

  • To my knowledge, it is defined as follows:

    ///
    /// Datum is passed to the function.
    ///
    #define IN
    

    This is used to indicate that the parameter is an input parameter only.

    As OUT and OPTIONAL is used to indicate output and optional parameters.

    These are maybe for convenience.