[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XENCONS PATCH 05/11] Replace old annotations with SAL2 equivalents



* Do a mechanical search-and-replace, where IN and OUT are replaced with
  _In_ and _Out_ respectively
* Parameters annotated with OPTIONAL use the _opt_ equivalents
* Replace __drv IRQL annotations with the _IRQL_ ones

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/monitor/monitor.c     | 108 ++++++-------
 src/tty/tty.c             |  46 +++---
 src/xencons/console.c     |  74 ++++-----
 src/xencons/console.h     |  10 +-
 src/xencons/console_abi.h |  20 +--
 src/xencons/driver.c      |  33 ++--
 src/xencons/fdo.c         | 330 +++++++++++++++++++-------------------
 src/xencons/fdo.h         |  34 ++--
 src/xencons/frontend.c    | 118 +++++++-------
 src/xencons/frontend.h    |  18 +--
 src/xencons/mutex.h       |   4 +-
 src/xencons/names.h       |  18 +--
 src/xencons/pdo.c         | 270 +++++++++++++++----------------
 src/xencons/pdo.h         |  38 ++---
 src/xencons/ring.c        | 131 ++++++++-------
 src/xencons/ring.h        |  30 ++--
 src/xencons/stream.c      |  58 ++++---
 src/xencons/stream.h      |  10 +-
 18 files changed, 672 insertions(+), 678 deletions(-)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index ec8a638..8f2a6a6 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -111,8 +111,8 @@ static MONITOR_CONTEXT MonitorContext;
 static VOID
 #pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds 
/analyze:stacksize'1024'
 __Log(
-    IN  const CHAR      *Format,
-    IN  ...
+    _In_ const CHAR     *Format,
+    _In_ ...
     )
 {
 #if DBG
@@ -126,9 +126,9 @@ __Log(
 
     va_start(Arguments, Format);
     Result = StringCchVPrintfA(Buffer,
-                              MAXIMUM_BUFFER_SIZE,
-                              Format,
-                              Arguments);
+                               MAXIMUM_BUFFER_SIZE,
+                               Format,
+                               Arguments);
     va_end(Arguments);
 
     if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
@@ -140,8 +140,8 @@ __Log(
 
     Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
 
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
+    _Analysis_assume_(Length < MAXIMUM_BUFFER_SIZE);
+    _Analysis_assume_(Length >= 2);
     Buffer[Length] = '\0';
     Buffer[Length - 1] = '\n';
     Buffer[Length - 2] = '\r';
@@ -153,14 +153,14 @@ __Log(
 
     if (Context->EventLog != NULL)
         ReportEventA(Context->EventLog,
-                    EVENTLOG_INFORMATION_TYPE,
-                    0,
-                    MONITOR_LOG,
-                    NULL,
-                    ARRAYSIZE(Strings),
-                    0,
-                    Strings,
-                    NULL);
+                     EVENTLOG_INFORMATION_TYPE,
+                     0,
+                     MONITOR_LOG,
+                     NULL,
+                     ARRAYSIZE(Strings),
+                     0,
+                     Strings,
+                     NULL);
 #endif
 }
 
@@ -169,21 +169,21 @@ __Log(
 
 static PCHAR
 GetErrorMessage(
-    IN  HRESULT Error
+    _In_ HRESULT    Error
     )
 {
-    PCHAR       Message;
-    ULONG       Index;
+    PCHAR           Message;
+    ULONG           Index;
 
     if (!FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPSTR)&Message,
-                       0,
-                       NULL))
+                        FORMAT_MESSAGE_FROM_SYSTEM |
+                        FORMAT_MESSAGE_IGNORE_INSERTS,
+                        NULL,
+                        Error,
+                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                        (LPSTR)&Message,
+                        0,
+                        NULL))
         return NULL;
 
     for (Index = 0; Message[Index] != '\0'; Index++) {
@@ -198,7 +198,7 @@ GetErrorMessage(
 
 static const CHAR *
 ServiceStateName(
-    IN  DWORD   State
+    _In_ DWORD  State
     )
 {
 #define _STATE_NAME(_State) \
@@ -221,9 +221,9 @@ ServiceStateName(
 
 static VOID
 ReportStatus(
-    IN  DWORD           CurrentState,
-    IN  DWORD           Win32ExitCode,
-    IN  DWORD           WaitHint
+    _In_ DWORD          CurrentState,
+    _In_ DWORD          Win32ExitCode,
+    _In_ DWORD          WaitHint
     )
 {
     PMONITOR_CONTEXT    Context = &MonitorContext;
@@ -272,7 +272,7 @@ fail1:
 
 static FORCEINLINE VOID
 __InitializeListHead(
-    IN  PLIST_ENTRY ListEntry
+    _In_ PLIST_ENTRY    ListEntry
     )
 {
     ListEntry->Flink = ListEntry;
@@ -281,8 +281,8 @@ __InitializeListHead(
 
 static FORCEINLINE VOID
 __InsertTailList(
-    IN  PLIST_ENTRY ListHead,
-    IN  PLIST_ENTRY ListEntry
+    _In_ PLIST_ENTRY    ListHead,
+    _In_ PLIST_ENTRY    ListEntry
     )
 {
     ListEntry->Blink = ListHead->Blink;
@@ -293,11 +293,11 @@ __InsertTailList(
 
 static FORCEINLINE VOID
 __RemoveEntryList(
-    IN  PLIST_ENTRY ListEntry
+    _In_ PLIST_ENTRY    ListEntry
     )
 {
-    PLIST_ENTRY     Flink;
-    PLIST_ENTRY     Blink;
+    PLIST_ENTRY         Flink;
+    PLIST_ENTRY         Blink;
 
     Flink = ListEntry->Flink;
     Blink = ListEntry->Blink;
@@ -310,9 +310,9 @@ __RemoveEntryList(
 
 static VOID
 PutString(
-    IN  HANDLE      Handle,
-    IN  PUCHAR      Buffer,
-    IN  DWORD       Length
+    _In_ HANDLE     Handle,
+    _In_ PUCHAR     Buffer,
+    _In_ DWORD      Length
     )
 {
     DWORD           Offset;
@@ -339,7 +339,7 @@ PutString(
 
 DWORD WINAPI
 ConnectionThread(
-    IN  LPVOID          Argument
+    _In_ LPVOID         Argument
     )
 {
     PMONITOR_CONNECTION Connection = (PMONITOR_CONNECTION)Argument;
@@ -428,7 +428,7 @@ fail1:
 
 DWORD WINAPI
 ServerThread(
-    IN  LPVOID          Argument
+    _In_ LPVOID         Argument
     )
 {
     PMONITOR_CONSOLE    Console = (PMONITOR_CONSOLE)Argument;
@@ -562,7 +562,7 @@ fail1:
 
 DWORD WINAPI
 DeviceThread(
-    IN  LPVOID          Argument
+    _In_ LPVOID         Argument
     )
 {
     PMONITOR_CONSOLE    Console = (PMONITOR_CONSOLE)Argument;
@@ -668,8 +668,8 @@ fail1:
 
 static BOOL
 GetExecutable(
-    IN  PCHAR           DeviceName,
-    OUT PCHAR           *Executable
+    _In_ PCHAR          DeviceName,
+    _Out_ PCHAR         *Executable
     )
 {
     PMONITOR_CONTEXT    Context = &MonitorContext;
@@ -765,7 +765,7 @@ fail1:
 
 DWORD WINAPI
 ExecutableThread(
-    IN  LPVOID          Argument
+    _In_ LPVOID         Argument
     )
 {
     PMONITOR_CONSOLE    Console = (PMONITOR_CONSOLE)Argument;
@@ -862,7 +862,7 @@ fail1:
 
 static PMONITOR_CONSOLE
 ConsoleCreate(
-    IN  PWCHAR              DevicePath
+    _In_ PWCHAR             DevicePath
     )
 {
     PMONITOR_CONTEXT        Context = &MonitorContext;
@@ -1064,7 +1064,7 @@ fail1:
 
 static FORCEINLINE VOID
 ConsoleWaitForPipes(
-    IN  PMONITOR_CONSOLE    Console
+    _In_ PMONITOR_CONSOLE   Console
     )
 {
     PLIST_ENTRY             ListEntry;
@@ -1112,7 +1112,7 @@ fail1:
 
 static VOID
 ConsoleDestroy(
-    IN  PMONITOR_CONSOLE    Console
+    _In_ PMONITOR_CONSOLE   Console
     )
 {
     Log("====> %s", Console->DeviceName);
@@ -1159,7 +1159,7 @@ ConsoleDestroy(
 
 static BOOL
 MonitorAdd(
-    IN  PWCHAR          DevicePath
+    _In_ PWCHAR         DevicePath
     )
 {
     PMONITOR_CONTEXT    Context = &MonitorContext;
@@ -1188,7 +1188,7 @@ fail1:
 
 static BOOL
 MonitorRemove(
-    IN  HANDLE          DeviceHandle
+    _In_ HANDLE         DeviceHandle
     )
 {
     PMONITOR_CONTEXT    Context = &MonitorContext;
@@ -1372,10 +1372,10 @@ MonitorRemoveAll(
 
 DWORD WINAPI
 MonitorCtrlHandlerEx(
-    IN  DWORD           Ctrl,
-    IN  DWORD           EventType,
-    IN  LPVOID          EventData,
-    IN  LPVOID          Argument
+    _In_ DWORD          Ctrl,
+    _In_ DWORD          EventType,
+    _In_ LPVOID         EventData,
+    _In_ LPVOID         Argument
     )
 {
     PMONITOR_CONTEXT    Context = &MonitorContext;
diff --git a/src/tty/tty.c b/src/tty/tty.c
index 08d3724..40d508a 100644
--- a/src/tty/tty.c
+++ b/src/tty/tty.c
@@ -62,8 +62,8 @@ TTY_CONTEXT TtyContext;
 static VOID
 #pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds 
/analyze:stacksize'1024'
 __Log(
-    IN  const CHAR      *Format,
-    IN  ...
+    _In_ const CHAR     *Format,
+    _In_ ...
     )
 {
     CHAR                Buffer[MAXIMUM_BUFFER_SIZE];
@@ -87,8 +87,8 @@ __Log(
 
     Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
 
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
+    _Analysis_assume_(Length < MAXIMUM_BUFFER_SIZE);
+    _Analysis_assume_(Length >= 2);
     Buffer[Length] = '\0';
     Buffer[Length - 1] = '\n';
     Buffer[Length - 2] = '\r';
@@ -173,8 +173,8 @@ CreateChild(
 
 static VOID
 PutCharacter(
-    IN  PTTY_STREAM Stream,
-    IN  TCHAR       Character
+    _In_ PTTY_STREAM    Stream,
+    _In_ TCHAR          Character
     )
 {
     WriteFile(Stream->Write,
@@ -186,12 +186,12 @@ PutCharacter(
 
 static VOID
 PutString(
-    IN  PTTY_STREAM Stream,
-    IN  PTCHAR      Buffer,
-    IN  DWORD       Length
+    _In_ PTTY_STREAM    Stream,
+    _In_ PTCHAR         Buffer,
+    _In_ DWORD          Length
     )
 {
-    DWORD           Offset;
+    DWORD               Offset;
 
     Offset = 0;
     while (Offset < Length) {
@@ -215,15 +215,15 @@ PutString(
 
 static BOOL
 GetLine(
-    IN  PTTY_STREAM Stream,
-    IN  PTCHAR      Buffer,
-    IN  DWORD       NumberOfBytesToRead,
-    OUT LPDWORD     NumberOfBytesRead,
-    IN  BOOL        NoEcho
+    _In_ PTTY_STREAM    Stream,
+    _In_ PTCHAR         Buffer,
+    _In_ DWORD          NumberOfBytesToRead,
+    _Out_ LPDWORD       NumberOfBytesRead,
+    _In_ BOOL           NoEcho
     )
 {
-    DWORD           Offset;
-    BOOL            Success = TRUE;
+    DWORD               Offset;
+    BOOL                Success = TRUE;
 
     Offset = 0;
     while (Offset < NumberOfBytesToRead) {
@@ -290,8 +290,8 @@ GetLine(
 
 static BOOL
 GetCredentials(
-    IN  PTCHAR      Password,
-    IN  DWORD       PasswordSize
+    _In_ PTCHAR     Password,
+    _In_ DWORD      PasswordSize
     )
 {
     PTTY_CONTEXT    Context = &TtyContext;
@@ -420,7 +420,7 @@ RequestElevation(
 
 static DWORD WINAPI
 TtyIn(
-    IN  LPVOID      Argument
+    _In_ LPVOID     Argument
     )
 {
     PTTY_CONTEXT    Context = &TtyContext;
@@ -468,7 +468,7 @@ TtyIn(
 
 static DWORD WINAPI
 TtyOut(
-    IN  LPVOID      Argument
+    _In_ LPVOID     Argument
     )
 {
     PTTY_CONTEXT    Context = &TtyContext;
@@ -510,8 +510,8 @@ TtyOut(
 
 void __cdecl
 _tmain(
-    IN  int             argc,
-    IN  TCHAR           *argv[]
+    _In_ int            argc,
+    _In_ TCHAR          *argv[]
     )
 {
     PTTY_CONTEXT        Context = &TtyContext;
diff --git a/src/xencons/console.c b/src/xencons/console.c
index 72421ce..0dd1825 100644
--- a/src/xencons/console.c
+++ b/src/xencons/console.c
@@ -64,7 +64,7 @@ typedef struct _XENCONS_CONSOLE {
 
 static FORCEINLINE PVOID
 __ConsoleAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, CONSOLE_POOL);
@@ -72,7 +72,7 @@ __ConsoleAllocate(
 
 static FORCEINLINE VOID
 __ConsoleFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, CONSOLE_POOL);
@@ -80,8 +80,8 @@ __ConsoleFree(
 
 static FORCEINLINE NTSTATUS
 __ConsoleCreateHandle(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PFILE_OBJECT        FileObject,
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PFILE_OBJECT       FileObject,
     OUT PCONSOLE_HANDLE     *Handle
     )
 {
@@ -115,8 +115,8 @@ fail1:
 
 static FORCEINLINE VOID
 __ConsoleDestroyHandle(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PCONSOLE_HANDLE     Handle
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PCONSOLE_HANDLE    Handle
     )
 {
     UNREFERENCED_PARAMETER(Console);
@@ -134,8 +134,8 @@ __ConsoleDestroyHandle(
 
 static PCONSOLE_HANDLE
 __ConsoleFindHandle(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PFILE_OBJECT        FileObject
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PFILE_OBJECT       FileObject
     )
 {
     KIRQL                   Irql;
@@ -174,8 +174,8 @@ fail1:
 
 static NTSTATUS
 ConsoleOpen(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PFILE_OBJECT        FileObject
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PFILE_OBJECT       FileObject
     )
 {
     PCONSOLE_HANDLE         Handle;
@@ -202,8 +202,8 @@ fail1:
 
 static NTSTATUS
 ConsoleClose(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PFILE_OBJECT        FileObject
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PFILE_OBJECT       FileObject
     )
 {
     PCONSOLE_HANDLE         Handle;
@@ -234,8 +234,8 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __ConsoleReadWrite(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PIRP                Irp
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -267,8 +267,8 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __ConsoleDeviceControl(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PIRP                Irp
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -347,8 +347,8 @@ fail1:
 
 static NTSTATUS
 ConsolePutQueue(
-    IN  PXENCONS_CONSOLE    Console,
-    IN  PIRP                Irp
+    _In_ PXENCONS_CONSOLE   Console,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -377,9 +377,9 @@ ConsolePutQueue(
 
 static NTSTATUS
 ConsoleD3ToD0(
-    IN  PXENCONS_CONSOLE    Console
+    _In_ PXENCONS_CONSOLE   Console
     )
-{ 
+{
     Trace("====>\n");
 
     UNREFERENCED_PARAMETER(Console);
@@ -391,7 +391,7 @@ ConsoleD3ToD0(
 
 static VOID
 ConsoleD0ToD3(
-    IN  PXENCONS_CONSOLE    Console
+    _In_ PXENCONS_CONSOLE   Console
     )
 {
     KIRQL                   Irql;
@@ -430,7 +430,7 @@ ConsoleD0ToD3(
 
 static NTSTATUS
 ConsoleAbiAcquire(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -451,7 +451,7 @@ ConsoleAbiAcquire(
 
 static VOID
 ConsoleAbiRelease(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -471,7 +471,7 @@ ConsoleAbiRelease(
 
 static NTSTATUS
 ConsoleAbiD3ToD0(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -481,7 +481,7 @@ ConsoleAbiD3ToD0(
 
 static VOID
 ConsoleAbiD0ToD3(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -491,8 +491,8 @@ ConsoleAbiD0ToD3(
 
 static NTSTATUS
 ConsoleAbiOpen(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -502,8 +502,8 @@ ConsoleAbiOpen(
 
 static NTSTATUS
 ConsoleAbiClose(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -513,8 +513,8 @@ ConsoleAbiClose(
 
 static NTSTATUS
 ConsoleAbiPutQueue(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PIRP                            Irp
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PIRP                           Irp
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
@@ -535,8 +535,8 @@ static XENCONS_CONSOLE_ABI ConsoleAbi = {
 
 NTSTATUS
 ConsoleCreate(
-    IN  PXENCONS_FDO                    Fdo,
-    OUT PXENCONS_CONSOLE_ABI_CONTEXT    *Context
+    _In_ PXENCONS_FDO                   Fdo,
+    _Out_ PXENCONS_CONSOLE_ABI_CONTEXT  *Context
     )
 {
     PXENCONS_CONSOLE                    Console;
@@ -569,8 +569,8 @@ fail1:
 
 VOID
 ConsoleGetAbi(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    OUT PXENCONS_CONSOLE_ABI            Abi
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _Out_ PXENCONS_CONSOLE_ABI          Abi
     )
 {
     *Abi = ConsoleAbi;
@@ -580,11 +580,11 @@ ConsoleGetAbi(
 
 VOID
 ConsoleDestroy(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_CONSOLE                    Console = (PXENCONS_CONSOLE)Context;
-    
+
     Trace("====>\n");
 
     ASSERT(IsListEmpty(&Console->List));
diff --git a/src/xencons/console.h b/src/xencons/console.h
index 50c40d3..3fdede4 100644
--- a/src/xencons/console.h
+++ b/src/xencons/console.h
@@ -40,19 +40,19 @@
 
 extern NTSTATUS
 ConsoleCreate(
-    IN  PXENCONS_FDO                    Fdo,
-    OUT PXENCONS_CONSOLE_ABI_CONTEXT    *Context
+    _In_ PXENCONS_FDO                   Fdo,
+    _Out_ PXENCONS_CONSOLE_ABI_CONTEXT  *Context
     );
 
 VOID
 ConsoleGetAbi(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    OUT PXENCONS_CONSOLE_ABI            Abi
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _Out_ PXENCONS_CONSOLE_ABI          Abi
     );
 
 VOID
 ConsoleDestroy(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 #endif  // _XENCONS_CONSOLE_H
diff --git a/src/xencons/console_abi.h b/src/xencons/console_abi.h
index 68da268..1fd4f8f 100644
--- a/src/xencons/console_abi.h
+++ b/src/xencons/console_abi.h
@@ -41,40 +41,40 @@ typedef PVOID *PXENCONS_CONSOLE_ABI_CONTEXT;
 
 typedef NTSTATUS
 (*XENCONS_CONSOLE_ABI_ACQUIRE)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 typedef VOID
 (*XENCONS_CONSOLE_ABI_RELEASE)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 typedef NTSTATUS
 (*XENCONS_CONSOLE_ABI_D3TOD0)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 typedef VOID
 (*XENCONS_CONSOLE_ABI_D0TOD3)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 typedef NTSTATUS
 (*XENCONS_CONSOLE_ABI_OPEN)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     );
 
 typedef NTSTATUS
 (*XENCONS_CONSOLE_ABI_CLOSE)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     );
 
 typedef NTSTATUS
 (*XENCONS_CONSOLE_ABI_PUT_QUEUE)(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PIRP                            Irp
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PIRP                           Irp
     );
 
 typedef struct _XENCONS_CONSOLE_ABI {
diff --git a/src/xencons/driver.c b/src/xencons/driver.c
index 01836ee..ba6a575 100644
--- a/src/xencons/driver.c
+++ b/src/xencons/driver.c
@@ -70,7 +70,7 @@ DriverSafeMode(
 
 static FORCEINLINE VOID
 __DriverSetDriverObject(
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_opt_ PDRIVER_OBJECT DriverObject
     )
 {
     Driver.DriverObject = DriverObject;
@@ -94,7 +94,7 @@ DriverGetDriverObject(
 
 static FORCEINLINE VOID
 __DriverSetParametersKey(
-    IN  HANDLE  Key
+    _In_opt_ HANDLE Key
     )
 {
     Driver.ParametersKey = Key;
@@ -120,7 +120,7 @@ DRIVER_UNLOAD       DriverUnload;
 
 VOID
 DriverUnload(
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_ PDRIVER_OBJECT DriverObject
     )
 {
     HANDLE              ParametersKey;
@@ -156,8 +156,8 @@ DRIVER_ADD_DEVICE   AddDevice;
 
 NTSTATUS
 AddDevice(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PDRIVER_OBJECT DriverObject,
+    _In_ PDEVICE_OBJECT DeviceObject
     )
 {
     NTSTATUS            status;
@@ -180,15 +180,16 @@ fail1:
     return status;
 }
 
-DRIVER_DISPATCH Dispatch;
-
+_Function_class_(DRIVER_DISPATCH)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_same_
 NTSTATUS
 Dispatch(
-    IN PDEVICE_OBJECT   DeviceObject,
-    IN PIRP             Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _Inout_ PIRP        Irp
     )
 {
-    PXENCONS_DX          Dx;
+    PXENCONS_DX         Dx;
     NTSTATUS            status;
 
     Dx = (PXENCONS_DX)DeviceObject->DeviceExtension;
@@ -242,14 +243,14 @@ DRIVER_INITIALIZE   DriverEntry;
 
 NTSTATUS
 DriverEntry(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PUNICODE_STRING RegistryPath
+    _In_ PDRIVER_OBJECT     DriverObject,
+    _In_ PUNICODE_STRING    RegistryPath
     )
 {
-    HANDLE              ServiceKey;
-    HANDLE              ParametersKey;
-    ULONG               Index;
-    NTSTATUS            status;
+    HANDLE                  ServiceKey;
+    HANDLE                  ParametersKey;
+    ULONG                   Index;
+    NTSTATUS                status;
 
     ASSERT3P(__DriverGetDriverObject(), ==, NULL);
 
diff --git a/src/xencons/fdo.c b/src/xencons/fdo.c
index 4aa99e4..dabc830 100644
--- a/src/xencons/fdo.c
+++ b/src/xencons/fdo.c
@@ -108,7 +108,7 @@ struct _XENCONS_FDO {
 
 static FORCEINLINE PVOID
 __FdoAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, FDO_POOL);
@@ -116,7 +116,7 @@ __FdoAllocate(
 
 static FORCEINLINE VOID
 __FdoFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, FDO_POOL);
@@ -124,8 +124,8 @@ __FdoFree(
 
 static FORCEINLINE VOID
 __FdoSetDevicePnpState(
-    IN  PXENCONS_FDO        Fdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENCONS_DX             Dx = Fdo->Dx;
@@ -139,8 +139,8 @@ __FdoSetDevicePnpState(
 
 static FORCEINLINE VOID
 __FdoRestoreDevicePnpState(
-    IN  PXENCONS_FDO        Fdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENCONS_DX             Dx = Fdo->Dx;
@@ -151,7 +151,7 @@ __FdoRestoreDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __FdoGetDevicePnpState(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
@@ -161,7 +161,7 @@ __FdoGetDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __FdoGetPreviousDevicePnpState(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
@@ -171,8 +171,8 @@ __FdoGetPreviousDevicePnpState(
 
 static FORCEINLINE VOID
 __FdoSetDevicePowerState(
-    IN  PXENCONS_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  State
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE State
     )
 {
     PXENCONS_DX             Dx = Fdo->Dx;
@@ -182,7 +182,7 @@ __FdoSetDevicePowerState(
 
 static FORCEINLINE DEVICE_POWER_STATE
 __FdoGetDevicePowerState(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
@@ -192,8 +192,8 @@ __FdoGetDevicePowerState(
 
 static FORCEINLINE VOID
 __FdoSetSystemPowerState(
-    IN  PXENCONS_FDO        Fdo,
-    IN  SYSTEM_POWER_STATE  State
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ SYSTEM_POWER_STATE State
     )
 {
     PXENCONS_DX             Dx = Fdo->Dx;
@@ -203,7 +203,7 @@ __FdoSetSystemPowerState(
 
 static FORCEINLINE SYSTEM_POWER_STATE
 __FdoGetSystemPowerState(
-    IN  PXENCONS_FDO     Fdo
+    _In_ PXENCONS_FDO    Fdo
     )
 {
     PXENCONS_DX          Dx = Fdo->Dx;
@@ -213,7 +213,7 @@ __FdoGetSystemPowerState(
 
 static FORCEINLINE PDEVICE_OBJECT
 __FdoGetPhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     return Fdo->PhysicalDeviceObject;
@@ -221,16 +221,16 @@ __FdoGetPhysicalDeviceObject(
 
 PDEVICE_OBJECT
 FdoGetPhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     return __FdoGetPhysicalDeviceObject(Fdo);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static FORCEINLINE NTSTATUS
 __FdoAcquireLowerBusInterface(
-    IN  PXENCONS_FDO        Fdo
+    _In_ PXENCONS_FDO       Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -313,7 +313,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoReleaseLowerBusInterface(
-    IN  PXENCONS_FDO         Fdo
+    _In_ PXENCONS_FDO        Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -332,11 +332,11 @@ __FdoReleaseLowerBusInterface(
 
 ULONG
 FdoGetBusData(
-    IN  PXENCONS_FDO        Fdo,
-    IN  ULONG               DataType,
-    IN  PVOID               Buffer,
-    IN  ULONG               Offset,
-    IN  ULONG               Length
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ ULONG              DataType,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Offset,
+    _In_ ULONG              Length
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -353,8 +353,8 @@ FdoGetBusData(
 
 static FORCEINLINE VOID
 __FdoSetVendorName(
-    IN  PXENCONS_FDO    Fdo,
-    IN  USHORT          DeviceID
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ USHORT         DeviceID
     )
 {
     NTSTATUS            status;
@@ -369,7 +369,7 @@ __FdoSetVendorName(
 
 static FORCEINLINE PCHAR
 __FdoGetVendorName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     return Fdo->VendorName;
@@ -377,7 +377,7 @@ __FdoGetVendorName(
 
 PCHAR
 FdoGetVendorName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     return __FdoGetVendorName(Fdo);
@@ -385,7 +385,7 @@ FdoGetVendorName(
 
 static FORCEINLINE VOID
 __FdoSetName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
@@ -400,7 +400,7 @@ __FdoSetName(
 
 static FORCEINLINE PCHAR
 __FdoGetName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
@@ -410,19 +410,19 @@ __FdoGetName(
 
 PCHAR
 FdoGetName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     return __FdoGetName(Fdo);
 }
 
-__drv_functionClass(IO_COMPLETION_ROUTINE)
-__drv_sameIRQL
+_Function_class_(IO_COMPLETION_ROUTINE)
+_IRQL_requires_same_
 static NTSTATUS
 __FdoDelegateIrp(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp,
-    IN  PVOID           Context
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp,
+    _In_ PVOID          Context
     )
 {
     PKEVENT             Event = Context;
@@ -437,8 +437,8 @@ __FdoDelegateIrp(
 
 NTSTATUS
 FdoDelegateIrp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -501,13 +501,13 @@ done:
     return status;
 }
 
-__drv_functionClass(IO_COMPLETION_ROUTINE)
-__drv_sameIRQL
+_Function_class_(IO_COMPLETION_ROUTINE)
+_IRQL_requires_same_
 static NTSTATUS
 __FdoForwardIrpSynchronously(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp,
-    IN  PVOID           Context
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp,
+    _In_ PVOID          Context
     )
 {
     PKEVENT             Event = Context;
@@ -522,8 +522,8 @@ __FdoForwardIrpSynchronously(
 
 static NTSTATUS
 FdoForwardIrpSynchronously(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     KEVENT              Event;
@@ -560,9 +560,9 @@ FdoForwardIrpSynchronously(
 
 static DECLSPEC_NOINLINE VOID
 FdoParseResources(
-    IN  PXENCONS_FDO            Fdo,
-    IN  PCM_RESOURCE_LIST       RawResourceList,
-    IN  PCM_RESOURCE_LIST       TranslatedResourceList
+    _In_ PXENCONS_FDO           Fdo,
+    _In_ PCM_RESOURCE_LIST      RawResourceList,
+    _In_ PCM_RESOURCE_LIST      TranslatedResourceList
     )
 {
     PCM_PARTIAL_RESOURCE_LIST   RawPartialList;
@@ -607,8 +607,8 @@ FdoParseResources(
 
 NTSTATUS
 FdoAddPhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -641,8 +641,8 @@ fail1:
 
 VOID
 FdoRemovePhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -668,7 +668,7 @@ done:
 
 static FORCEINLINE VOID
 __FdoAcquireMutex(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     AcquireMutex(&Fdo->Mutex);
@@ -676,7 +676,7 @@ __FdoAcquireMutex(
 
 VOID
 FdoAcquireMutex(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     __FdoAcquireMutex(Fdo);
@@ -684,7 +684,7 @@ FdoAcquireMutex(
 
 static FORCEINLINE VOID
 __FdoReleaseMutex(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     ReleaseMutex(&Fdo->Mutex);
@@ -692,7 +692,7 @@ __FdoReleaseMutex(
 
 VOID
 FdoReleaseMutex(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     __FdoReleaseMutex(Fdo);
@@ -703,8 +703,8 @@ FdoReleaseMutex(
 
 static FORCEINLINE BOOLEAN
 __FdoEnumerate(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PANSI_STRING    Devices
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PANSI_STRING   Devices
     )
 {
     BOOLEAN             NeedInvalidate;
@@ -811,7 +811,7 @@ done:
 
 static FORCEINLINE PANSI_STRING
 __FdoMultiSzToUpcaseAnsi(
-    IN  PCHAR       Buffer
+    _In_ PCHAR      Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -876,7 +876,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoFreeAnsi(
-    IN  PANSI_STRING    Ansi
+    _In_ PANSI_STRING   Ansi
     )
 {
     ULONG               Index;
@@ -1008,8 +1008,8 @@ FdoScan(
 
 static FORCEINLINE BOOLEAN
 __FdoMatchDistribution(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PCHAR           Buffer
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PCHAR          Buffer
     )
 {
     PCHAR               Vendor;
@@ -1068,7 +1068,7 @@ fail1:
 
 static VOID
 FdoClearDistribution(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PCHAR               Buffer;
@@ -1131,7 +1131,7 @@ done:
 
 static NTSTATUS
 FdoSetDistribution(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     ULONG               Index;
@@ -1225,7 +1225,7 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __FdoD3ToD0(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     NTSTATUS            status;
@@ -1265,7 +1265,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoD0ToD3(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     Trace("====>\n");
@@ -1290,14 +1290,14 @@ __FdoD0ToD3(
 
 static DECLSPEC_NOINLINE VOID
 FdoSuspendCallbackLate(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENCONS_FDO    Fdo = Argument;
     NTSTATUS        status;
 
     __FdoD0ToD3(Fdo);
-    
+
     status = __FdoD3ToD0(Fdo);
     ASSERT(NT_SUCCESS(status));
 }
@@ -1305,7 +1305,7 @@ FdoSuspendCallbackLate(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE NTSTATUS
 FdoD3ToD0(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     POWER_STATE         PowerState;
@@ -1396,7 +1396,7 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoD0ToD3(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     POWER_STATE         PowerState;
@@ -1455,7 +1455,7 @@ FdoD0ToD3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoS4ToS3(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -1467,7 +1467,7 @@ FdoS4ToS3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoS3ToS4(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -1478,8 +1478,8 @@ FdoS3ToS4(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStartDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1536,8 +1536,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryStopDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1553,8 +1553,8 @@ FdoQueryStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoCancelStopDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1571,8 +1571,8 @@ FdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStopDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1599,8 +1599,8 @@ FdoStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryRemoveDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1616,8 +1616,8 @@ FdoQueryRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoCancelRemoveDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1634,8 +1634,8 @@ FdoCancelRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoSurpriseRemoval(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PLIST_ENTRY         ListEntry;
@@ -1669,8 +1669,8 @@ FdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoRemoveDevice(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PLIST_ENTRY         ListEntry;
@@ -1750,8 +1750,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryDeviceRelations(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1876,8 +1876,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryCapabilities(
-    IN  PXENCONS_FDO        Fdo,
-    IN  PIRP                Irp
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1916,8 +1916,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDeviceUsageNotification(
-    IN  PXENCONS_FDO                Fdo,
-    IN  PIRP                        Irp
+    _In_ PXENCONS_FDO               Fdo,
+    _In_ PIRP                       Irp
     )
 {
     PIO_STACK_LOCATION              StackLocation;
@@ -1976,8 +1976,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryPnpDeviceState(
-    IN  PXENCONS_FDO                Fdo,
-    IN  PIRP                        Irp
+    _In_ PXENCONS_FDO               Fdo,
+    _In_ PIRP                       Irp
     )
 {
     ULONG_PTR                       State;
@@ -2007,8 +2007,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPnp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2087,8 +2087,8 @@ FdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerUp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2125,8 +2125,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerDown(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2156,8 +2156,8 @@ __FdoSetDevicePowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePower(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2194,15 +2194,15 @@ done:
     return status;
 }
 
-__drv_functionClass(REQUEST_POWER_COMPLETE)
-__drv_sameIRQL
+_Function_class_(REQUEST_POWER_COMPLETE)
+_IRQL_requires_same_
 VOID
 __FdoRequestSetDevicePower(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  UCHAR               MinorFunction,
-    IN  POWER_STATE         PowerState,
-    IN  PVOID               Context,
-    IN  PIO_STATUS_BLOCK    IoStatus
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ UCHAR              MinorFunction,
+    _In_ POWER_STATE        PowerState,
+    _In_ PVOID              Context,
+    _In_ PIO_STATUS_BLOCK   IoStatus
     )
 {
     PKEVENT                 Event = Context;
@@ -2218,8 +2218,8 @@ __FdoRequestSetDevicePower(
 
 static VOID
 FdoRequestSetDevicePower(
-    IN  PXENCONS_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  DeviceState
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE DeviceState
     )
 {
     POWER_STATE             PowerState;
@@ -2250,8 +2250,8 @@ FdoRequestSetDevicePower(
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPowerUp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
 
@@ -2294,8 +2294,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPowerDown(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2333,8 +2333,8 @@ __FdoSetSystemPowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPower(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2373,8 +2373,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePowerUp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2396,8 +2396,8 @@ __FdoQueryDevicePowerUp(
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePowerDown(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2417,8 +2417,8 @@ __FdoQueryDevicePowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePower(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2455,15 +2455,15 @@ done:
     return status;
 }
 
-__drv_functionClass(REQUEST_POWER_COMPLETE)
-__drv_sameIRQL
+_Function_class_(REQUEST_POWER_COMPLETE)
+_IRQL_requires_same_
 VOID
 __FdoRequestQueryDevicePower(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  UCHAR               MinorFunction,
-    IN  POWER_STATE         PowerState,
-    IN  PVOID               Context,
-    IN  PIO_STATUS_BLOCK    IoStatus
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ UCHAR              MinorFunction,
+    _In_ POWER_STATE        PowerState,
+    _In_ PVOID              Context,
+    _In_ PIO_STATUS_BLOCK   IoStatus
     )
 {
     PKEVENT                 Event = Context;
@@ -2479,8 +2479,8 @@ __FdoRequestQueryDevicePower(
 
 static VOID
 FdoRequestQueryDevicePower(
-    IN  PXENCONS_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  DeviceState
+    _In_ PXENCONS_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE DeviceState
     )
 {
     POWER_STATE             PowerState;
@@ -2511,8 +2511,8 @@ FdoRequestQueryDevicePower(
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPowerUp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
 
@@ -2543,8 +2543,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPowerDown(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2569,8 +2569,8 @@ __FdoQuerySystemPowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPower(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2610,12 +2610,12 @@ done:
 
 static NTSTATUS
 FdoDevicePower(
-    IN  PXENCONS_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENCONS_FDO        Fdo = Context;
-    PKEVENT             Event;
+    PXENCONS_FDO            Fdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -2667,12 +2667,12 @@ FdoDevicePower(
 
 static NTSTATUS
 FdoSystemPower(
-    IN  PXENCONS_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENCONS_FDO        Fdo = Context;
-    PKEVENT             Event;
+    PXENCONS_FDO            Fdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -2724,8 +2724,8 @@ FdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPower(
-    IN  PXENCONS_FDO     Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2792,8 +2792,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchDefault(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -2806,8 +2806,8 @@ FdoDispatchDefault(
 
 NTSTATUS
 FdoDispatch(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2843,15 +2843,15 @@ FdoDispatch(
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryInterface(
-    IN  PXENCONS_FDO    Fdo,
-    IN  const GUID      *Guid,
-    IN  ULONG           Version,
-    OUT PINTERFACE      Interface,
-    IN  ULONG           Size,
-    IN  BOOLEAN         Optional
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ const GUID     *Guid,
+    _In_ ULONG          Version,
+    _Out_ PINTERFACE    Interface,
+    _In_ ULONG          Size,
+    _In_ BOOLEAN        Optional
     )
 {
     KEVENT              Event;
@@ -2933,8 +2933,8 @@ fail1:
 #define DEFINE_FDO_GET_INTERFACE(_Interface, _Type)                     \
 VOID                                                                    \
 FdoGet ## _Interface ## Interface(                                      \
-    IN  PXENCONS_FDO Fdo,                                                \
-    OUT _Type       _Interface ## Interface                             \
+    _In_ PXENCONS_FDO   Fdo,                                            \
+    _Out_ _Type         _Interface ## Interface                         \
     )                                                                   \
 {                                                                       \
     * ## _Interface ## Interface = Fdo-> ## _Interface ## Interface;    \
@@ -2949,7 +2949,7 @@ DEFINE_FDO_GET_INTERFACE(Gnttab, PXENBUS_GNTTAB_INTERFACE)
 
 NTSTATUS
 FdoCreate(
-    IN  PDEVICE_OBJECT      PhysicalDeviceObject
+    _In_ PDEVICE_OBJECT     PhysicalDeviceObject
     )
 {
     PDEVICE_OBJECT          FunctionDeviceObject;
@@ -3175,7 +3175,7 @@ fail1:
 
 VOID
 FdoDestroy(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     )
 {
     PXENCONS_DX         Dx = Fdo->Dx;
diff --git a/src/xencons/fdo.h b/src/xencons/fdo.h
index 916c168..3681d5b 100644
--- a/src/xencons/fdo.h
+++ b/src/xencons/fdo.h
@@ -45,58 +45,58 @@
 
 extern PCHAR
 FdoGetVendorName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 extern PCHAR
 FdoGetName(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 extern NTSTATUS
 FdoAddPhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 FdoRemovePhysicalDeviceObject(
-    IN  PXENCONS_FDO     Fdo,
-    IN  PXENCONS_PDO     Pdo
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 FdoAcquireMutex(
-    IN  PXENCONS_FDO     Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 extern VOID
 FdoReleaseMutex(
-    IN  PXENCONS_FDO     Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 extern PDEVICE_OBJECT
 FdoGetPhysicalDeviceObject(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 extern NTSTATUS
 FdoDelegateIrp(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     );
 
 extern NTSTATUS
 FdoDispatch(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_FDO   Fdo,
+    _In_ PIRP           Irp
     );
 
 #define DECLARE_FDO_GET_INTERFACE(_Interface, _Type)    \
 extern VOID                                             \
 FdoGet ## _Interface ## Interface(                      \
-    IN  PXENCONS_FDO Fdo,                               \
-    OUT _Type        _Interface ## Interface            \
+    _In_ PXENCONS_FDO   Fdo,                            \
+    _Out_ _Type         _Interface ## Interface         \
     );
 
 DECLARE_FDO_GET_INTERFACE(Debug, PXENBUS_DEBUG_INTERFACE)
@@ -108,12 +108,12 @@ DECLARE_FDO_GET_INTERFACE(Gnttab, 
PXENBUS_GNTTAB_INTERFACE)
 
 extern NTSTATUS
 FdoCreate(
-    IN  PDEVICE_OBJECT  PhysicalDeviceObject
+    _In_ PDEVICE_OBJECT PhysicalDeviceObject
     );
 
 extern VOID
 FdoDestroy(
-    IN  PXENCONS_FDO    Fdo
+    _In_ PXENCONS_FDO   Fdo
     );
 
 #endif  // _XENCONS_FDO_H
diff --git a/src/xencons/frontend.c b/src/xencons/frontend.c
index 8c57824..384a042 100644
--- a/src/xencons/frontend.c
+++ b/src/xencons/frontend.c
@@ -90,7 +90,7 @@ struct _XENCONS_FRONTEND {
 
 static const PCHAR
 FrontendStateName(
-    IN  FRONTEND_STATE  State
+    _In_ FRONTEND_STATE State
     )
 {
 #define _STATE_NAME(_State)     \
@@ -114,7 +114,7 @@ FrontendStateName(
 
 static const PCHAR
 XenbusStateName(
-    IN  XenbusState State
+    _In_ XenbusState    State
     )
 {
 #define _STATE_NAME(_State)         \
@@ -142,7 +142,7 @@ XenbusStateName(
 
 static FORCEINLINE PVOID
 __FrontendAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, FRONTEND_POOL);
@@ -150,7 +150,7 @@ __FrontendAllocate(
 
 static FORCEINLINE VOID
 __FrontendFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, FRONTEND_POOL);
@@ -158,7 +158,7 @@ __FrontendFree(
 
 static FORCEINLINE PXENCONS_PDO
 __FrontendGetPdo(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return Frontend->Pdo;
@@ -166,7 +166,7 @@ __FrontendGetPdo(
 
 PXENCONS_PDO
 FrontendGetPdo(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return __FrontendGetPdo(Frontend);
@@ -174,7 +174,7 @@ FrontendGetPdo(
 
 static FORCEINLINE PCHAR
 __FrontendGetPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return Frontend->Path;
@@ -182,7 +182,7 @@ __FrontendGetPath(
 
 PCHAR
 FrontendGetPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return __FrontendGetPath(Frontend);
@@ -190,7 +190,7 @@ FrontendGetPath(
 
 static FORCEINLINE PCHAR
 __FrontendGetBackendPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return Frontend->BackendPath;
@@ -198,7 +198,7 @@ __FrontendGetBackendPath(
 
 PCHAR
 FrontendGetBackendPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return __FrontendGetBackendPath(Frontend);
@@ -206,7 +206,7 @@ FrontendGetBackendPath(
 
 static FORCEINLINE USHORT
 __FrontendGetBackendDomain(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return Frontend->BackendDomain;
@@ -214,7 +214,7 @@ __FrontendGetBackendDomain(
 
 USHORT
 FrontendGetBackendDomain(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return __FrontendGetBackendDomain(Frontend);
@@ -222,7 +222,7 @@ FrontendGetBackendDomain(
 
 static BOOLEAN
 FrontendIsOnline(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     return Frontend->Online;
@@ -230,7 +230,7 @@ FrontendIsOnline(
 
 static BOOLEAN
 FrontendIsBackendOnline(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     PCHAR                   Buffer;
@@ -258,12 +258,12 @@ FrontendIsBackendOnline(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FrontendEject(
-    IN  PXENCONS_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENCONS_FRONTEND   Frontend = Context;
-    PKEVENT             Event;
+    PXENCONS_FRONTEND       Frontend = Context;
+    PKEVENT                 Event;
 
     Trace("%s: ====>\n", __FrontendGetPath(Frontend));
 
@@ -310,7 +310,7 @@ FrontendEject(
 
 VOID
 FrontendEjectFailed(
-    IN PXENCONS_FRONTEND    Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -361,7 +361,7 @@ fail1:
 
 static VOID
 FrontendSetOnline(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -373,7 +373,7 @@ FrontendSetOnline(
 
 static VOID
 FrontendSetOffline(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -386,8 +386,8 @@ FrontendSetOffline(
 
 static VOID
 FrontendSetXenbusState(
-    IN  PXENCONS_FRONTEND   Frontend,
-    IN  XenbusState         State
+    _In_ PXENCONS_FRONTEND  Frontend,
+    _In_ XenbusState        State
     )
 {
     BOOLEAN                 Online;
@@ -418,8 +418,8 @@ FrontendSetXenbusState(
 
 static VOID
 FrontendWaitForBackendXenbusStateChange(
-    IN      PXENCONS_FRONTEND   Frontend,
-    IN OUT  XenbusState         *State
+    _In_     PXENCONS_FRONTEND  Frontend,
+    _Inout_  XenbusState        *State
     )
 {
     KEVENT                      Event;
@@ -512,7 +512,7 @@ FrontendWaitForBackendXenbusStateChange(
 
 static NTSTATUS
 FrontendAcquireBackend(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     PCHAR                   Buffer;
@@ -558,7 +558,7 @@ fail1:
 
 static VOID
 FrontendReleaseBackend(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     Trace("=====>\n");
@@ -578,7 +578,7 @@ FrontendReleaseBackend(
 
 static VOID
 FrontendClose(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -622,7 +622,7 @@ FrontendClose(
 
 static NTSTATUS
 FrontendPrepare(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -706,8 +706,8 @@ fail1:
 
 static VOID
 FrontendDebugCallback(
-    IN  PVOID               Argument,
-    IN  BOOLEAN             Crashing
+    _In_ PVOID              Argument,
+    _In_ BOOLEAN            Crashing
     )
 {
     PXENCONS_FRONTEND       Frontend = Argument;
@@ -730,7 +730,7 @@ FrontendDebugCallback(
 
 static NTSTATUS
 FrontendConnect(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -890,7 +890,7 @@ fail1:
 
 static VOID
 FrontendDisconnect(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -915,7 +915,7 @@ FrontendDisconnect(
 
 static NTSTATUS
 FrontendEnable(
-    IN  PXENCONS_FRONTEND    Frontend
+    _In_ PXENCONS_FRONTEND   Frontend
     )
 {
     NTSTATUS                status;
@@ -938,7 +938,7 @@ fail1:
 
 static VOID
 FrontendDisable(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -950,8 +950,8 @@ FrontendDisable(
 
 static NTSTATUS
 FrontendSetState(
-    IN  PXENCONS_FRONTEND   Frontend,
-    IN  FRONTEND_STATE      State
+    _In_ PXENCONS_FRONTEND  Frontend,
+    _In_ FRONTEND_STATE     State
     )
 {
     BOOLEAN                 Failed;
@@ -1104,7 +1104,7 @@ FrontendSetState(
 
 static FORCEINLINE VOID
 __FrontendResume(
-    IN  PXENCONS_FRONTEND    Frontend
+    _In_ PXENCONS_FRONTEND   Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1117,7 +1117,7 @@ __FrontendResume(
 
 static FORCEINLINE VOID
 __FrontendSuspend(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1128,7 +1128,7 @@ __FrontendSuspend(
 
 static DECLSPEC_NOINLINE VOID
 FrontendSuspendCallback(
-    IN  PVOID           Argument
+    _In_ PVOID          Argument
     )
 {
     PXENCONS_FRONTEND   Frontend = Argument;
@@ -1139,7 +1139,7 @@ FrontendSuspendCallback(
 
 static NTSTATUS
 FrontendResume(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -1198,7 +1198,7 @@ fail1:
 
 static VOID
 FrontendSuspend(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -1234,8 +1234,8 @@ FrontendSuspend(
 
 static NTSTATUS
 FrontendGetProperty(
-    IN  PXENCONS_FRONTEND   Frontend,
-    IN  PIRP                Irp
+    _In_ PXENCONS_FRONTEND  Frontend,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1308,7 +1308,7 @@ fail1:
 
 static NTSTATUS
 FrontendAbiAcquire(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1370,7 +1370,7 @@ fail1:
 
 static VOID
 FrontendAbiRelease(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1407,7 +1407,7 @@ done:
 
 static NTSTATUS
 FrontendAbiD3ToD0(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1420,7 +1420,7 @@ FrontendAbiD3ToD0(
 
 static VOID
 FrontendAbiD0ToD3(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1431,8 +1431,8 @@ FrontendAbiD0ToD3(
 
 static NTSTATUS
 FrontendAbiOpen(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1442,8 +1442,8 @@ FrontendAbiOpen(
 
 static NTSTATUS
 FrontendAbiClose(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PFILE_OBJECT                    FileObject
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PFILE_OBJECT                   FileObject
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1453,8 +1453,8 @@ FrontendAbiClose(
 
 static NTSTATUS
 FrontendAbiPutQueue(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    IN  PIRP                            Irp
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _In_ PIRP                           Irp
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
@@ -1489,8 +1489,8 @@ static XENCONS_CONSOLE_ABI FrontendAbi = {
 
 NTSTATUS
 FrontendCreate(
-    IN  PXENCONS_PDO                    Pdo,
-    OUT PXENCONS_CONSOLE_ABI_CONTEXT    *Context
+    _In_ PXENCONS_PDO                   Pdo,
+    _Out_ PXENCONS_CONSOLE_ABI_CONTEXT  *Context
     )
 {
     PCHAR                               Name;
@@ -1597,8 +1597,8 @@ fail1:
 
 VOID
 FrontendGetAbi(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    OUT PXENCONS_CONSOLE_ABI            Abi
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _Out_ PXENCONS_CONSOLE_ABI          Abi
     )
 {
     *Abi = FrontendAbi;
@@ -1608,7 +1608,7 @@ FrontendGetAbi(
 
 VOID
 FrontendDestroy(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     )
 {
     PXENCONS_FRONTEND                   Frontend = (PXENCONS_FRONTEND)Context;
diff --git a/src/xencons/frontend.h b/src/xencons/frontend.h
index 88d89b7..e57d083 100644
--- a/src/xencons/frontend.h
+++ b/src/xencons/frontend.h
@@ -42,39 +42,39 @@ typedef struct _XENCONS_FRONTEND XENCONS_FRONTEND, 
*PXENCONS_FRONTEND;
 
 extern NTSTATUS
 FrontendCreate(
-    IN  PXENCONS_PDO                    Pdo,
-    OUT PXENCONS_CONSOLE_ABI_CONTEXT    *Context
+    _In_ PXENCONS_PDO                   Pdo,
+    _Out_ PXENCONS_CONSOLE_ABI_CONTEXT  *Context
     );
 
 VOID
 FrontendGetAbi(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context,
-    OUT PXENCONS_CONSOLE_ABI            Abi
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context,
+    _Out_ PXENCONS_CONSOLE_ABI          Abi
     );
 
 VOID
 FrontendDestroy(
-    IN  PXENCONS_CONSOLE_ABI_CONTEXT    Context
+    _In_ PXENCONS_CONSOLE_ABI_CONTEXT   Context
     );
 
 extern PXENCONS_PDO
 FrontendGetPdo(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     );
 
 extern PCHAR
 FrontendGetPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     );
 
 extern PCHAR
 FrontendGetBackendPath(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     );
 
 extern USHORT
 FrontendGetBackendDomain(
-    IN  PXENCONS_FRONTEND   Frontend
+    _In_ PXENCONS_FRONTEND  Frontend
     );
 
 #endif  // _XENCONS_FRONTEND_H
diff --git a/src/xencons/mutex.h b/src/xencons/mutex.h
index ee1915e..c6cd2f9 100644
--- a/src/xencons/mutex.h
+++ b/src/xencons/mutex.h
@@ -53,7 +53,7 @@ InitializeMutex(
 }
 
 static FORCEINLINE VOID
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 AcquireMutex(
     IN  PMUTEX  Mutex
 )
@@ -69,7 +69,7 @@ AcquireMutex(
 }
 
 static FORCEINLINE VOID
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 ReleaseMutex(
     IN  PMUTEX  Mutex
 )
diff --git a/src/xencons/names.h b/src/xencons/names.h
index 1100a7a..84519f3 100644
--- a/src/xencons/names.h
+++ b/src/xencons/names.h
@@ -37,7 +37,7 @@
 
 static FORCEINLINE const CHAR *
 PowerTypeName(
-    IN  POWER_STATE_TYPE    Type
+    _In_ POWER_STATE_TYPE   Type
     )
 {
 #define _POWER_TYPE_NAME(_Type) \
@@ -57,7 +57,7 @@ PowerTypeName(
 
 static FORCEINLINE const CHAR *
 PowerSystemStateName(
-    IN  SYSTEM_POWER_STATE State
+    _In_ SYSTEM_POWER_STATE State
     )
 {
 #define _POWER_SYSTEM_STATE_NAME(_State)    \
@@ -83,7 +83,7 @@ PowerSystemStateName(
 
 static FORCEINLINE const CHAR *
 PowerDeviceStateName(
-    IN  DEVICE_POWER_STATE State
+    _In_ DEVICE_POWER_STATE State
     )
 {
 #define _POWER_DEVICE_STATE_NAME(_State)    \
@@ -107,7 +107,7 @@ PowerDeviceStateName(
 
 static FORCEINLINE const CHAR *
 PowerActionName(
-    IN  POWER_ACTION    Type
+    _In_ POWER_ACTION   Type
     )
 {
 #define _POWER_ACTION_NAME(_Type)   \
@@ -133,7 +133,7 @@ PowerActionName(
 
 static FORCEINLINE const CHAR *
 PowerMinorFunctionName(
-    IN  ULONG   MinorFunction
+    _In_ ULONG  MinorFunction
     )
 {
 #define _POWER_MINOR_FUNCTION_NAME(_Function)   \
@@ -156,7 +156,7 @@ PowerMinorFunctionName(
 
 static FORCEINLINE const CHAR *
 PnpMinorFunctionName(
-    IN  ULONG   Function
+    _In_ ULONG  Function
     )
 {
 #define _PNP_MINOR_FUNCTION_NAME(_Function) \
@@ -199,7 +199,7 @@ PnpMinorFunctionName(
 
 static FORCEINLINE const CHAR *
 PartialResourceDescriptorTypeName(
-    IN  UCHAR   Type
+    _In_ UCHAR  Type
     )
 {
 #define _PARTIAL_RESOURCE_DESCRIPTOR_TYPE_NAME(_Type)   \
@@ -228,7 +228,7 @@ PartialResourceDescriptorTypeName(
 
 static FORCEINLINE const CHAR *
 DeviceUsageTypeName(
-    IN  DEVICE_USAGE_NOTIFICATION_TYPE  Type
+    _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type
     )
 {
 #define _DEVICE_USAGE_TYPE_NAME(_Type)  \
@@ -250,7 +250,7 @@ DeviceUsageTypeName(
 
 static FORCEINLINE const CHAR *
 MajorFunctionName(
-    IN  ULONG   Function
+    _In_ ULONG  Function
     )
 {
 #define _MAJOR_FUNCTION_NAME(_Function) \
diff --git a/src/xencons/pdo.c b/src/xencons/pdo.c
index 388eabb..b1d5507 100644
--- a/src/xencons/pdo.c
+++ b/src/xencons/pdo.c
@@ -82,7 +82,7 @@ struct _XENCONS_PDO {
 
 static FORCEINLINE PVOID
 __PdoAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, PDO_POOL);
@@ -90,7 +90,7 @@ __PdoAllocate(
 
 static FORCEINLINE VOID
 __PdoFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, PDO_POOL);
@@ -98,8 +98,8 @@ __PdoFree(
 
 static FORCEINLINE VOID
 __PdoSetDevicePnpState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENCONS_DX             Dx = Pdo->Dx;
@@ -113,8 +113,8 @@ __PdoSetDevicePnpState(
 
 VOID
 PdoSetDevicePnpState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     __PdoSetDevicePnpState(Pdo, State);
@@ -122,8 +122,8 @@ PdoSetDevicePnpState(
 
 static FORCEINLINE VOID
 __PdoRestoreDevicePnpState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENCONS_DX             Dx = Pdo->Dx;
@@ -134,7 +134,7 @@ __PdoRestoreDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __PdoGetDevicePnpState(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -144,7 +144,7 @@ __PdoGetDevicePnpState(
 
 DEVICE_PNP_STATE
 PdoGetDevicePnpState(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoGetDevicePnpState(Pdo);
@@ -152,8 +152,8 @@ PdoGetDevicePnpState(
 
 static FORCEINLINE VOID
 __PdoSetSystemPowerState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  SYSTEM_POWER_STATE  State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ SYSTEM_POWER_STATE State
     )
 {
     PXENCONS_DX             Dx = Pdo->Dx;
@@ -163,7 +163,7 @@ __PdoSetSystemPowerState(
 
 static FORCEINLINE SYSTEM_POWER_STATE
 __PdoGetSystemPowerState(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -173,8 +173,8 @@ __PdoGetSystemPowerState(
 
 static FORCEINLINE VOID
 __PdoSetDevicePowerState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_POWER_STATE  State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_POWER_STATE State
     )
 {
     PXENCONS_DX             Dx = Pdo->Dx;
@@ -184,7 +184,7 @@ __PdoSetDevicePowerState(
 
 static FORCEINLINE DEVICE_POWER_STATE
 __PdoGetDevicePowerState(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -194,8 +194,8 @@ __PdoGetDevicePowerState(
 
 static FORCEINLINE VOID
 __PdoSetMissing(
-    IN  PXENCONS_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ const CHAR     *Reason
     )
 {
     Pdo->Reason = Reason;
@@ -204,8 +204,8 @@ __PdoSetMissing(
 
 VOID
 PdoSetMissing(
-    IN  PXENCONS_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ const CHAR     *Reason
     )
 {
     __PdoSetMissing(Pdo, Reason);
@@ -213,7 +213,7 @@ PdoSetMissing(
 
 static FORCEINLINE BOOLEAN
 __PdoIsMissing(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return Pdo->Missing;
@@ -221,7 +221,7 @@ __PdoIsMissing(
 
 BOOLEAN
 PdoIsMissing(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoIsMissing(Pdo);
@@ -229,7 +229,7 @@ PdoIsMissing(
 
 static FORCEINLINE PDEVICE_OBJECT
 __PdoGetDeviceObject(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -239,7 +239,7 @@ __PdoGetDeviceObject(
 
 PDEVICE_OBJECT
 PdoGetDeviceObject(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoGetDeviceObject(Pdo);
@@ -247,7 +247,7 @@ PdoGetDeviceObject(
 
 static FORCEINLINE PXENCONS_FDO
 __PdoGetFdo(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return Pdo->Fdo;
@@ -255,7 +255,7 @@ __PdoGetFdo(
 
 PXENCONS_FDO
 PdoGetFdo(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoGetFdo(Pdo);
@@ -263,12 +263,12 @@ PdoGetFdo(
 
 static FORCEINLINE VOID
 __PdoSetName(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PANSI_STRING    Device
+    _In_ PXENCONS_PDO       Pdo,
+    _In_opt_ PANSI_STRING   Device
     )
 {
-    PXENCONS_DX         Dx = Pdo->Dx;
-    NTSTATUS            status;
+    PXENCONS_DX             Dx = Pdo->Dx;
+    NTSTATUS                status;
 
     if (Device == NULL)
         status = RtlStringCbPrintfA(Dx->Name,
@@ -284,7 +284,7 @@ __PdoSetName(
 
 static FORCEINLINE PCHAR
 __PdoGetName(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -294,7 +294,7 @@ __PdoGetName(
 
 PCHAR
 PdoGetName(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoGetName(Pdo);
@@ -302,7 +302,7 @@ PdoGetName(
 
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return FdoGetVendorName(__PdoGetFdo(Pdo));
@@ -310,7 +310,7 @@ __PdoGetVendorName(
 
 static FORCEINLINE BOOLEAN
 __PdoIsDefault(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return Pdo->IsDefault;
@@ -318,7 +318,7 @@ __PdoIsDefault(
 
 BOOLEAN
 PdoIsDefault(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoIsDefault(Pdo);
@@ -326,8 +326,8 @@ PdoIsDefault(
 
 static FORCEINLINE VOID
 __PdoSetDefault(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PANSI_STRING    Device
+    _In_ PXENCONS_PDO       Pdo,
+    _In_opt_ PANSI_STRING   Device
     )
 {
     Pdo->IsDefault = (Device == NULL) ? TRUE : FALSE;
@@ -335,7 +335,7 @@ __PdoSetDefault(
 
 static FORCEINLINE BOOLEAN
 __PdoSetEjectRequested(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return (InterlockedBitTestAndSet(&Pdo->Eject, 0) == 0) ? TRUE : FALSE;
@@ -343,7 +343,7 @@ __PdoSetEjectRequested(
 
 VOID
 PdoRequestEject(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
@@ -363,7 +363,7 @@ PdoRequestEject(
 
 static FORCEINLINE BOOLEAN
 __PdoClearEjectRequested(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return (InterlockedBitTestAndReset(&Pdo->Eject, 0) != 0) ? TRUE : FALSE;
@@ -371,7 +371,7 @@ __PdoClearEjectRequested(
 
 static FORCEINLINE BOOLEAN
 __PdoIsEjectRequested(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     KeMemoryBarrier();
@@ -380,7 +380,7 @@ __PdoIsEjectRequested(
 
 BOOLEAN
 PdoIsEjectRequested(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     return __PdoIsEjectRequested(Pdo);
@@ -388,7 +388,7 @@ PdoIsEjectRequested(
 
 static FORCEINLINE NTSTATUS
 __PdoD3ToD0(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     POWER_STATE         PowerState;
@@ -412,7 +412,7 @@ __PdoD3ToD0(
 
 static FORCEINLINE VOID
 __PdoD0ToD3(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     POWER_STATE         PowerState;
@@ -434,7 +434,7 @@ __PdoD0ToD3(
 
 static DECLSPEC_NOINLINE VOID
 PdoSuspendCallbackLate(
-    IN  PVOID               Argument
+    _In_ PVOID              Argument
     )
 {
     PXENCONS_PDO            Pdo = Argument;
@@ -449,7 +449,7 @@ PdoSuspendCallbackLate(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE NTSTATUS
 PdoD3ToD0(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     KIRQL               Irql;
@@ -526,7 +526,7 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoD0ToD3(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     KIRQL               Irql;
@@ -563,7 +563,7 @@ done:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoS4ToS3(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     Trace("(%s) ====>\n", __PdoGetName(Pdo));
@@ -579,7 +579,7 @@ PdoS4ToS3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoS3ToS4(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     Trace("(%s) ====>\n", __PdoGetName(Pdo));
@@ -594,8 +594,8 @@ PdoS3ToS4(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStartDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -636,8 +636,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryStopDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -653,8 +653,8 @@ PdoQueryStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoCancelStopDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -670,8 +670,8 @@ PdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStopDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -693,8 +693,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryRemoveDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -710,8 +710,8 @@ PdoQueryRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoCancelRemoveDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -730,8 +730,8 @@ PdoCancelRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoSurpriseRemoval(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -749,8 +749,8 @@ PdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoRemoveDevice(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PXENCONS_FDO        Fdo = __PdoGetFdo(Pdo);
@@ -796,8 +796,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceRelations(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -835,8 +835,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryCapabilities(
-    IN  PXENCONS_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -903,8 +903,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceText(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -988,8 +988,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoReadConfig(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     UNREFERENCED_PARAMETER(Pdo);
@@ -1002,8 +1002,8 @@ PdoReadConfig(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoWriteConfig(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     UNREFERENCED_PARAMETER(Pdo);
@@ -1018,8 +1018,8 @@ PdoWriteConfig(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryId(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1169,8 +1169,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryBusInformation(
-    IN  PXENCONS_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PPNP_BUS_INFORMATION    Info;
@@ -1202,8 +1202,8 @@ done:
 
 static NTSTATUS
 PdoDelegateIrp(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     return FdoDelegateIrp(__PdoGetFdo(Pdo), Irp);
@@ -1211,8 +1211,8 @@ PdoDelegateIrp(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDeviceUsageNotification(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1227,8 +1227,8 @@ PdoDeviceUsageNotification(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoEject(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PXENCONS_FDO        Fdo = __PdoGetFdo(Pdo);
@@ -1256,8 +1256,8 @@ PdoEject(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPnp(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1357,8 +1357,8 @@ PdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __PdoSetDevicePower(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1408,12 +1408,12 @@ __PdoSetDevicePower(
 
 static NTSTATUS
 PdoDevicePower(
-    IN  PXENCONS_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENCONS_PDO        Pdo = Context;
-    PKEVENT             Event;
+    PXENCONS_PDO            Pdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -1446,15 +1446,15 @@ PdoDevicePower(
     return STATUS_SUCCESS;
 }
 
-__drv_functionClass(REQUEST_POWER_COMPLETE)
-__drv_sameIRQL
+_Function_class_(REQUEST_POWER_COMPLETE)
+_IRQL_requires_same_
 VOID
 __PdoRequestSetDevicePower(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  UCHAR               MinorFunction,
-    IN  POWER_STATE         PowerState,
-    IN  PVOID               Context,
-    IN  PIO_STATUS_BLOCK    IoStatus
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ UCHAR              MinorFunction,
+    _In_ POWER_STATE        PowerState,
+    _In_ PVOID              Context,
+    _In_ PIO_STATUS_BLOCK   IoStatus
     )
 {
     PKEVENT                 Event = Context;
@@ -1470,8 +1470,8 @@ __PdoRequestSetDevicePower(
 
 static VOID
 PdoRequestSetDevicePower(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_POWER_STATE  DeviceState
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_POWER_STATE DeviceState
     )
 {
     POWER_STATE             PowerState;
@@ -1517,8 +1517,8 @@ DevicePowerStateMap[PowerSystemMaximum] =
 
 static FORCEINLINE NTSTATUS
 __PdoSetSystemPower(
-    IN  PXENCONS_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1578,12 +1578,12 @@ __PdoSetSystemPower(
 
 static NTSTATUS
 PdoSystemPower(
-    IN  PXENCONS_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENCONS_PDO        Pdo = Context;
-    PKEVENT             Event;
+    PXENCONS_PDO            Pdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -1618,8 +1618,8 @@ PdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoSetPower(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1677,8 +1677,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryPower(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1695,8 +1695,8 @@ PdoQueryPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPower(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1726,8 +1726,8 @@ PdoDispatchPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchCreate(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1747,8 +1747,8 @@ PdoDispatchCreate(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchCleanup(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1768,8 +1768,8 @@ PdoDispatchCleanup(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchClose(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1786,8 +1786,8 @@ PdoDispatchClose(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchReadWriteControl(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1809,8 +1809,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchDefault(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1825,8 +1825,8 @@ PdoDispatchDefault(
 
 NTSTATUS
 PdoDispatch(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1871,7 +1871,7 @@ PdoDispatch(
 
 NTSTATUS
 PdoResume(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     NTSTATUS            status;
@@ -1893,7 +1893,7 @@ fail1:
 
 VOID
 PdoSuspend(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     Trace("(%s) ====>\n", __PdoGetName(Pdo));
@@ -1905,14 +1905,14 @@ PdoSuspend(
 
 NTSTATUS
 PdoCreate(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PANSI_STRING    Device
+    _In_ PXENCONS_FDO       Fdo,
+    _In_opt_ PANSI_STRING   Device
     )
 {
-    PDEVICE_OBJECT      PhysicalDeviceObject;
-    PXENCONS_DX         Dx;
-    PXENCONS_PDO        Pdo;
-    NTSTATUS            status;
+    PDEVICE_OBJECT          PhysicalDeviceObject;
+    PXENCONS_DX             Dx;
+    PXENCONS_PDO            Pdo;
+    NTSTATUS                status;
 
 #pragma prefast(suppress:28197) // Possibly leaking memory 
'PhysicalDeviceObject'
     status = IoCreateDeviceSecure(DriverGetDriverObject(),
@@ -2049,7 +2049,7 @@ fail1:
 
 VOID
 PdoDestroy(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     )
 {
     PXENCONS_DX         Dx = Pdo->Dx;
diff --git a/src/xencons/pdo.h b/src/xencons/pdo.h
index 52d78a5..12b334e 100644
--- a/src/xencons/pdo.h
+++ b/src/xencons/pdo.h
@@ -43,81 +43,81 @@ DEFINE_GUID(GUID_XENCONS_DEVICE_CLASS,
 
 extern VOID
 PdoSetDevicePnpState(
-    IN  PXENCONS_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENCONS_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     );
 
 extern DEVICE_PNP_STATE
 PdoGetDevicePnpState(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 PdoSetMissing(
-    IN  PXENCONS_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ const CHAR     *Reason
     );
 
 extern BOOLEAN
 PdoIsMissing(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 PdoRequestEject(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern BOOLEAN
 PdoIsEjectRequested(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern PCHAR
 PdoGetName(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern PXENCONS_FDO
 PdoGetFdo(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern PDEVICE_OBJECT
 PdoGetDeviceObject(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern BOOLEAN
 PdoIsDefault(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern NTSTATUS
 PdoCreate(
-    IN  PXENCONS_FDO    Fdo,
-    IN  PANSI_STRING    Device
+    _In_ PXENCONS_FDO       Fdo,
+    _In_opt_ PANSI_STRING   Device
     );
 
 extern NTSTATUS
 PdoResume(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 PdoSuspend(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern VOID
 PdoDestroy(
-    IN  PXENCONS_PDO    Pdo
+    _In_ PXENCONS_PDO   Pdo
     );
 
 extern NTSTATUS
 PdoDispatch(
-    IN  PXENCONS_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENCONS_PDO   Pdo,
+    _In_ PIRP           Irp
     );
 
 #endif  // _XENCONS_PDO_H
diff --git a/src/xencons/ring.c b/src/xencons/ring.c
index 29e172f..b7e033c 100644
--- a/src/xencons/ring.c
+++ b/src/xencons/ring.c
@@ -82,7 +82,7 @@ struct _XENCONS_RING {
 
 static FORCEINLINE PVOID
 __RingAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, XENCONS_RING_TAG);
@@ -90,7 +90,7 @@ __RingAllocate(
 
 static FORCEINLINE VOID
 __RingFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, XENCONS_RING_TAG);
@@ -100,9 +100,9 @@ IO_CSQ_INSERT_IRP_EX RingCsqInsertIrpEx;
 
 NTSTATUS
 RingCsqInsertIrpEx(
-    IN  PIO_CSQ         Csq,
-    IN  PIRP            Irp,
-    IN  PVOID           InsertContext OPTIONAL
+    _In_ PIO_CSQ        Csq,
+    _In_ PIRP           Irp,
+    _In_ PVOID          InsertContext OPTIONAL
     )
 {
     BOOLEAN             ReInsert = (BOOLEAN)(ULONG_PTR)InsertContext;
@@ -125,8 +125,8 @@ IO_CSQ_REMOVE_IRP RingCsqRemoveIrp;
 
 VOID
 RingCsqRemoveIrp(
-    IN  PIO_CSQ     Csq,
-    IN  PIRP        Irp
+    _In_ PIO_CSQ    Csq,
+    _In_ PIRP       Irp
     )
 {
     UNREFERENCED_PARAMETER(Csq);
@@ -134,13 +134,12 @@ RingCsqRemoveIrp(
     RemoveEntryList(&Irp->Tail.Overlay.ListEntry);
 }
 
-IO_CSQ_PEEK_NEXT_IRP RingCsqPeekNextIrp;
-
+_Function_class_(IO_CSQ_PEEK_NEXT_IRP)
 PIRP
 RingCsqPeekNextIrp(
-    IN  PIO_CSQ     Csq,
-    IN  PIRP        Irp,
-    IN  PVOID       PeekContext OPTIONAL
+    _In_ PIO_CSQ    Csq,
+    _In_ PIRP       Irp,
+    _In_opt_ PVOID  PeekContext
     )
 {
     PXENCONS_QUEUE  Queue;
@@ -173,30 +172,28 @@ RingCsqPeekNextIrp(
 #pragma warning(push)
 #pragma warning(disable:28167) // function changes IRQL
 
-IO_CSQ_ACQUIRE_LOCK RingCsqAcquireLock;
-
+_Function_class_(IO_CSQ_ACQUIRE_LOCK)
 VOID
 RingCsqAcquireLock(
-    IN  PIO_CSQ     Csq,
-    OUT PKIRQL      Irql
+    _In_ PIO_CSQ                            Csq,
+    _Out_ _At_(*Irql, _IRQL_saves_) PKIRQL  Irql
     )
 {
-    PXENCONS_QUEUE  Queue;
+    PXENCONS_QUEUE                          Queue;
 
     Queue = CONTAINING_RECORD(Csq, XENCONS_QUEUE, Csq);
 
     KeAcquireSpinLock(&Queue->Lock, Irql);
 }
 
-IO_CSQ_RELEASE_LOCK RingCsqReleaseLock;
-
+_Function_class_(IO_CSQ_RELEASE_LOCK)
 VOID
 RingCsqReleaseLock(
-    IN  PIO_CSQ     Csq,
-    IN  KIRQL       Irql
+    _In_ PIO_CSQ                Csq,
+    _In_ _IRQL_restores_ KIRQL  Irql
     )
 {
-    PXENCONS_QUEUE  Queue;
+    PXENCONS_QUEUE              Queue;
 
     Queue = CONTAINING_RECORD(Csq, XENCONS_QUEUE, Csq);
 
@@ -205,12 +202,11 @@ RingCsqReleaseLock(
 
 #pragma warning(pop)
 
-IO_CSQ_COMPLETE_CANCELED_IRP RingCsqCompleteCanceledIrp;
-
+_Function_class_(IO_CSQ_COMPLETE_CANCELED_IRP)
 VOID
 RingCsqCompleteCanceledIrp(
-    IN  PIO_CSQ         Csq,
-    IN  PIRP            Irp
+    _In_ PIO_CSQ        Csq,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -233,8 +229,8 @@ RingCsqCompleteCanceledIrp(
 
 static FORCEINLINE VOID
 __RingCancelRequests(
-    IN  PXENCONS_RING   Ring,
-    IN  PFILE_OBJECT    FileObject
+    _In_ PXENCONS_RING      Ring,
+    _In_opt_ PFILE_OBJECT   FileObject
     )
 {
     for (;;) {
@@ -259,7 +255,7 @@ __RingCancelRequests(
 
 static VOID
 RingAcquireLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENCONS_RING   Ring = Argument;
@@ -269,7 +265,7 @@ RingAcquireLock(
 
 static VOID
 RingReleaseLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENCONS_RING   Ring = Argument;
@@ -280,8 +276,8 @@ RingReleaseLock(
 
 NTSTATUS
 RingOpen(
-    IN  PXENCONS_RING   Ring,
-    IN  PFILE_OBJECT    FileObject
+    _In_ PXENCONS_RING  Ring,
+    _In_ PFILE_OBJECT   FileObject
     )
 {
     UNREFERENCED_PARAMETER(Ring);
@@ -291,8 +287,8 @@ RingOpen(
 
 NTSTATUS
 RingClose(
-    IN  PXENCONS_RING   Ring,
-    IN  PFILE_OBJECT    FileObject
+    _In_ PXENCONS_RING  Ring,
+    _In_ PFILE_OBJECT   FileObject
     )
 {
     __RingCancelRequests(Ring, FileObject);
@@ -301,8 +297,8 @@ RingClose(
 
 NTSTATUS
 RingPutQueue(
-    IN  PXENCONS_RING   Ring,
-    IN  PIRP            Irp
+    _In_ PXENCONS_RING  Ring,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -344,9 +340,9 @@ fail1:
 
 static ULONG
 RingCopyFromRead(
-    IN  PXENCONS_RING           Ring,
-    IN  PCHAR                   Data,
-    IN  ULONG                   Length
+    _In_ PXENCONS_RING          Ring,
+    _In_ PCHAR                  Data,
+    _In_ ULONG                  Length
     )
 {
     struct xencons_interface    *Shared;
@@ -398,9 +394,9 @@ RingCopyFromRead(
 
 static ULONG
 RingCopyToWrite(
-    IN  PXENCONS_RING           Ring,
-    IN  PCHAR                   Data,
-    IN  ULONG                   Length
+    _In_ PXENCONS_RING          Ring,
+    _In_ PCHAR                  Data,
+    _In_ ULONG                  Length
     )
 {
     struct xencons_interface    *Shared;
@@ -452,7 +448,7 @@ RingCopyToWrite(
 
 static BOOLEAN
 RingPoll(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     PIRP                Irp;
@@ -536,16 +532,16 @@ RingPoll(
     return FALSE;
 }
 
-__drv_functionClass(KDEFERRED_ROUTINE)
-__drv_maxIRQL(DISPATCH_LEVEL)
-__drv_minIRQL(PASSIVE_LEVEL)
-__drv_sameIRQL
+_Function_class_(KDEFERRED_ROUTINE)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_same_
 static VOID
 RingDpc(
-    IN  PKDPC               Dpc,
-    IN  PVOID               Context,
-    IN  PVOID               Argument1,
-    IN  PVOID               Argument2
+    _In_ PKDPC          Dpc,
+    _In_ PVOID          Context,
+    _In_ PVOID          Argument1,
+    _In_ PVOID          Argument2
     )
 {
     PXENCONS_RING       Ring = Context;
@@ -583,15 +579,14 @@ RingDpc(
                          FALSE);
 }
 
-KSERVICE_ROUTINE    RingEvtchnCallback;
-
+_Function_class_(KSERVICE_ROUTINE)
 BOOLEAN
 RingEvtchnCallback(
-    IN  PKINTERRUPT InterruptObject,
-    IN  PVOID       Argument
+    _In_ PKINTERRUPT    InterruptObject,
+    _In_ PVOID          Argument
     )
 {
-    PXENCONS_RING   Ring = Argument;
+    PXENCONS_RING       Ring = Argument;
 
     UNREFERENCED_PARAMETER(InterruptObject);
 
@@ -607,8 +602,8 @@ RingEvtchnCallback(
 
 static VOID
 RingDebugCallback(
-    IN  PVOID       Argument,
-    IN  BOOLEAN     Crashing
+    _In_ PVOID      Argument,
+    _In_ BOOLEAN    Crashing
     )
 {
     PXENCONS_RING   Ring = Argument;
@@ -639,7 +634,7 @@ RingDebugCallback(
 
 NTSTATUS
 RingEnable(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     Trace("====>\n");
@@ -657,7 +652,7 @@ RingEnable(
 
 VOID
 RingDisable(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     Trace("====>\n");
@@ -673,7 +668,7 @@ RingDisable(
 
 NTSTATUS
 RingConnect(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     CHAR                Name[MAXNAMELEN];
@@ -839,8 +834,8 @@ fail1:
 
 NTSTATUS
 RingStoreWrite(
-    IN  PXENCONS_RING   Ring,
-    IN  PVOID           Transaction
+    _In_ PXENCONS_RING  Ring,
+    _In_ PVOID          Transaction
     )
 {
     ULONG               Port;
@@ -888,7 +883,7 @@ fail1:
 
 VOID
 RingDisconnect(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     Trace("====>\n");
@@ -942,8 +937,8 @@ RingDisconnect(
 
 NTSTATUS
 RingCreate(
-    IN  PXENCONS_FRONTEND   Frontend,
-    OUT PXENCONS_RING       *Ring
+    _In_ PXENCONS_FRONTEND  Frontend,
+    _Out_ PXENCONS_RING     *Ring
     )
 {
     NTSTATUS                status;
@@ -1022,11 +1017,11 @@ fail1:
 
 VOID
 RingDestroy(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , PASSIVE_LEVEL);
-    
+
     // Cancel all outstanding IRPs
     __RingCancelRequests(Ring, NULL);
 
diff --git a/src/xencons/ring.h b/src/xencons/ring.h
index ffd4f21..811cc9b 100644
--- a/src/xencons/ring.h
+++ b/src/xencons/ring.h
@@ -41,57 +41,57 @@ typedef struct _XENCONS_RING XENCONS_RING, *PXENCONS_RING;
 
 extern NTSTATUS
 RingCreate(
-    IN  PXENCONS_FRONTEND   Frontend,
-    OUT PXENCONS_RING       *Ring
+    _In_ PXENCONS_FRONTEND  Frontend,
+    _Out_ PXENCONS_RING     *Ring
     );
 
 extern VOID
 RingDestroy(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     );
 
 extern NTSTATUS
 RingConnect(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     );
 
 extern NTSTATUS
 RingStoreWrite(
-    IN  PXENCONS_RING   Ring,
-    IN  PVOID           Transaction
+    _In_ PXENCONS_RING  Ring,
+    _In_ PVOID          Transaction
     );
 
 extern VOID
 RingDisconnect(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     );
 
 extern NTSTATUS
 RingEnable(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     );
 
 extern VOID
 RingDisable(
-    IN  PXENCONS_RING   Ring
+    _In_ PXENCONS_RING  Ring
     );
 
 extern NTSTATUS
 RingOpen(
-    IN  PXENCONS_RING   Ring,
-    IN  PFILE_OBJECT    FileObject
+    _In_ PXENCONS_RING  Ring,
+    _In_ PFILE_OBJECT   FileObject
     );
 
 extern NTSTATUS
 RingClose(
-    IN  PXENCONS_RING   Ring,
-    IN  PFILE_OBJECT    FileObject
+    _In_ PXENCONS_RING  Ring,
+    _In_ PFILE_OBJECT   FileObject
     );
 
 extern NTSTATUS
 RingPutQueue(
-    IN  PXENCONS_RING   Ring,
-    IN  PIRP            Irp
+    _In_ PXENCONS_RING  Ring,
+    _In_ PIRP           Irp
     );
 
 #endif  // _XENCONS_RING_H
diff --git a/src/xencons/stream.c b/src/xencons/stream.c
index 6aa9226..37cd423 100644
--- a/src/xencons/stream.c
+++ b/src/xencons/stream.c
@@ -53,7 +53,7 @@ struct _XENCONS_STREAM {
 
 static FORCEINLINE PVOID
 __StreamAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, STREAM_POOL);
@@ -61,7 +61,7 @@ __StreamAllocate(
 
 static FORCEINLINE VOID
 __StreamFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, STREAM_POOL);
@@ -71,9 +71,9 @@ IO_CSQ_INSERT_IRP_EX StreamCsqInsertIrpEx;
 
 NTSTATUS
 StreamCsqInsertIrpEx(
-    IN  PIO_CSQ         Csq,
-    IN  PIRP            Irp,
-    IN  PVOID           InsertContext OPTIONAL
+    _In_ PIO_CSQ        Csq,
+    _In_ PIRP           Irp,
+    _In_ PVOID          InsertContext OPTIONAL
     )
 {
     BOOLEAN             ReInsert = (BOOLEAN)(ULONG_PTR)InsertContext;
@@ -97,8 +97,8 @@ IO_CSQ_REMOVE_IRP StreamCsqRemoveIrp;
 
 VOID
 StreamCsqRemoveIrp(
-    IN  PIO_CSQ Csq,
-    IN  PIRP    Irp
+    _In_ PIO_CSQ    Csq,
+    _In_ PIRP       Irp
     )
 {
     UNREFERENCED_PARAMETER(Csq);
@@ -110,9 +110,9 @@ IO_CSQ_PEEK_NEXT_IRP StreamCsqPeekNextIrp;
 
 PIRP
 StreamCsqPeekNextIrp(
-    IN  PIO_CSQ     Csq,
-    IN  PIRP        Irp,
-    IN  PVOID       PeekContext OPTIONAL
+    _In_ PIO_CSQ    Csq,
+    _In_ PIRP       Irp,
+    _In_ PVOID      PeekContext OPTIONAL
     )
 {
     PXENCONS_STREAM Stream;
@@ -138,30 +138,28 @@ StreamCsqPeekNextIrp(
 #pragma warning(push)
 #pragma warning(disable:28167) // function changes IRQL
 
-IO_CSQ_ACQUIRE_LOCK StreamCsqAcquireLock;
-
+_Function_class_(IO_CSQ_ACQUIRE_LOCK)
 VOID
 StreamCsqAcquireLock(
-    IN  PIO_CSQ Csq,
-    OUT PKIRQL  Irql
+    _In_ PIO_CSQ                            Csq,
+    _Out_ _At_(*Irql, _IRQL_saves_) PKIRQL  Irql
     )
 {
-    PXENCONS_STREAM Stream;
+    PXENCONS_STREAM                         Stream;
 
     Stream = CONTAINING_RECORD(Csq, XENCONS_STREAM, Csq);
 
     KeAcquireSpinLock(&Stream->Lock, Irql);
 }
 
-IO_CSQ_RELEASE_LOCK StreamCsqReleaseLock;
-
+_Function_class_(IO_CSQ_RELEASE_LOCK)
 VOID
 StreamCsqReleaseLock(
-    IN  PIO_CSQ Csq,
-    IN  KIRQL   Irql
+    _In_ PIO_CSQ                Csq,
+    _In_ _IRQL_restores_ KIRQL  Irql
     )
 {
-    PXENCONS_STREAM Stream;
+    PXENCONS_STREAM             Stream;
 
     Stream = CONTAINING_RECORD(Csq, XENCONS_STREAM, Csq);
 
@@ -174,8 +172,8 @@ IO_CSQ_COMPLETE_CANCELED_IRP StreamCsqCompleteCanceledIrp;
 
 VOID
 StreamCsqCompleteCanceledIrp(
-    IN  PIO_CSQ Csq,
-    IN  PIRP    Irp
+    _In_ PIO_CSQ        Csq,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -198,8 +196,8 @@ StreamCsqCompleteCanceledIrp(
 
 static NTSTATUS
 StreamWorker(
-    IN  PXENCONS_THREAD     Self,
-    IN  PVOID               Context
+    _In_ PXENCONS_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
     PXENCONS_STREAM         Stream = Context;
@@ -348,11 +346,11 @@ fail1:
 
 NTSTATUS
 StreamCreate(
-    IN  PXENCONS_FDO    Fdo,
-    OUT PXENCONS_STREAM *Stream
+    _In_ PXENCONS_FDO           Fdo,
+    _Outptr_ PXENCONS_STREAM    *Stream
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                    status;
 
     *Stream = __StreamAllocate(sizeof (XENCONS_STREAM));
 
@@ -410,7 +408,7 @@ fail1:
 
 VOID
 StreamDestroy(
-    IN  PXENCONS_STREAM Stream
+    _In_ PXENCONS_STREAM    Stream
     )
 {
     Stream->Fdo = NULL;
@@ -445,8 +443,8 @@ StreamDestroy(
 
 NTSTATUS
 StreamPutQueue(
-    IN  PXENCONS_STREAM Stream,
-    IN  PIRP            Irp
+    _In_ PXENCONS_STREAM    Stream,
+    _In_ PIRP               Irp
     )
 {
     return IoCsqInsertIrpEx(&Stream->Csq, Irp, NULL, (PVOID)FALSE);
diff --git a/src/xencons/stream.h b/src/xencons/stream.h
index 7da9641..cbe26ec 100644
--- a/src/xencons/stream.h
+++ b/src/xencons/stream.h
@@ -41,19 +41,19 @@ typedef struct _XENCONS_STREAM XENCONS_STREAM, 
*PXENCONS_STREAM;
 
 extern NTSTATUS
 StreamCreate(
-    IN  PXENCONS_FDO    Fdo,
-    OUT PXENCONS_STREAM *Stream
+    _In_ PXENCONS_FDO           Fdo,
+    _Outptr_ PXENCONS_STREAM    *Stream
     );
 
 extern VOID
 StreamDestroy(
-    IN  PXENCONS_STREAM Stream
+    _In_ PXENCONS_STREAM    Stream
     );
 
 extern NTSTATUS
 StreamPutQueue(
-    IN  PXENCONS_STREAM Stream,
-    IN  PIRP            Irp
+    _In_ PXENCONS_STREAM    Stream,
+    _In_ PIRP               Irp
     );
 
 #endif  // _XENCONS_STREAM_H
-- 
2.51.0.windows.1



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.