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

[PATCH 03/18] xenvbd: convert old annotations to SAL 2.0


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
  • Date: Fri, 16 Oct 2026 15:26:40 +0200
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
  • Cc: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
  • Delivery-date: Fri, 16 Oct 2026 13:27:09 +0000
  • Feedback-id: default:8631fc262581453bbf619ec5b2062170:Sweego
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

Convert to SAL 2.0 annotations

Mechanical pass, no functional change.

Annotations:
  IN/OUT/IN OUT -> In/Out/Inout
  __in/__out/__inout -> same, opt variants preserved
  trailing OPTIONAL -> folded into the annotation (In_opt &c)
  Out on a T ** -> Outptr
  _drv/__checkReturn-> IRQL_requires/Dispatch_type/Check_return

Signed-off-by: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
---
 include/names.h              |  32 ++--
 include/xencrsh_interface.h  |   2 +-
 src/xencrsh/assert.h         |  16 +-
 src/xencrsh/austere.c        |  44 ++---
 src/xencrsh/austere.h        |   8 +-
 src/xencrsh/buffer.c         |  22 +--
 src/xencrsh/buffer.h         |  18 +-
 src/xencrsh/driver.c         |  72 +++----
 src/xencrsh/driver.h         |   6 +-
 src/xencrsh/evtchn.c         |  24 +--
 src/xencrsh/evtchn.h         |  20 +-
 src/xencrsh/fdo.c            |  70 +++----
 src/xencrsh/fdo.h            |  28 +--
 src/xencrsh/frontend.c       | 176 +++++++++---------
 src/xencrsh/frontend.h       |  30 +--
 src/xencrsh/gnttab.c         |  22 +--
 src/xencrsh/gnttab.h         |  14 +-
 src/xencrsh/hvm.c            |  36 ++--
 src/xencrsh/hvm.h            |  18 +-
 src/xencrsh/hypercall_stub.c |  12 +-
 src/xencrsh/log.c            |  38 ++--
 src/xencrsh/log.h            |   6 +-
 src/xencrsh/pdo.c            | 218 +++++++++++-----------
 src/xencrsh/pdo.h            |  42 ++---
 src/xencrsh/pdoinquiry.c     | 126 ++++++-------
 src/xencrsh/pdoinquiry.h     |  10 +-
 src/xencrsh/queue.c          |  40 ++--
 src/xencrsh/queue.h          |  20 +-
 src/xencrsh/srbext.h         |   2 +-
 src/xencrsh/store.c          | 166 ++++++++---------
 src/xencrsh/store.h          |  44 ++---
 src/xenvbd/adapter.c         | 352 +++++++++++++++++------------------
 src/xenvbd/adapter.h         |  50 ++---
 src/xenvbd/assert.h          |  16 +-
 src/xenvbd/base64.c          |  32 ++--
 src/xenvbd/base64.h          |   8 +-
 src/xenvbd/debug.h           |   8 +-
 src/xenvbd/driver.c          |  42 ++---
 src/xenvbd/driver.h          |  20 +-
 src/xenvbd/frontend.c        | 232 +++++++++++------------
 src/xenvbd/frontend.h        |  48 ++---
 src/xenvbd/granter.c         |  58 +++---
 src/xenvbd/granter.h         |  34 ++--
 src/xenvbd/registry.c        | 228 +++++++++++------------
 src/xenvbd/registry.h        | 180 +++++++++---------
 src/xenvbd/ring.c            | 254 ++++++++++++-------------
 src/xenvbd/ring.h            |  28 +--
 src/xenvbd/target.c          | 304 +++++++++++++++---------------
 src/xenvbd/target.h          |  52 +++---
 src/xenvbd/thread.c          |  44 ++---
 src/xenvbd/thread.h          |  30 +--
 51 files changed, 1701 insertions(+), 1701 deletions(-)

diff --git a/include/names.h b/include/names.h
index dfd445a..3848e39 100644
--- a/include/names.h
+++ b/include/names.h
@@ -38,7 +38,7 @@
 
 static FORCEINLINE const PCHAR
 XenbusStateName(
-    IN  XenbusState     State
+    _In_ XenbusState    State
     )
 {
     switch (State) {
@@ -57,7 +57,7 @@ XenbusStateName(
 
 static FORCEINLINE const PCHAR
 SrbStatusName(
-    IN  ULONG       Status
+    _In_ ULONG  Status
     )
 {
     switch (Status) {
@@ -75,7 +75,7 @@ SrbStatusName(
 
 static FORCEINLINE const PCHAR
 StorStatusName(
-    IN  ULONG       Status
+    _In_ ULONG  Status
     )
 {
     switch (Status) {
@@ -87,7 +87,7 @@ StorStatusName(
 }
 static FORCEINLINE const PCHAR
 ScsiAdapterControlTypeName(
-    IN  SCSI_ADAPTER_CONTROL_TYPE   ControlType
+    _In_ SCSI_ADAPTER_CONTROL_TYPE  ControlType
     )
 {
 #define _SCSI_CONTROL_TYPE_NAME(_type)      \
@@ -107,7 +107,7 @@ ScsiAdapterControlTypeName(
 }
 static FORCEINLINE const PCHAR
 StorPnPActionName(
-    IN  STOR_PNP_ACTION         Action
+    _In_ STOR_PNP_ACTION    Action
     )
 {
     switch (Action) {
@@ -121,7 +121,7 @@ StorPnPActionName(
 }
 static FORCEINLINE const PCHAR
 StorDeviceStateName(
-    IN  STOR_DEVICE_POWER_STATE     State
+    _In_ STOR_DEVICE_POWER_STATE    State
     )
 {
     switch (State) {
@@ -136,7 +136,7 @@ StorDeviceStateName(
 }
 static FORCEINLINE const PCHAR
 StorPowerActionName(
-    IN  STOR_POWER_ACTION           Action
+    _In_ STOR_POWER_ACTION  Action
     )
 {
     switch (Action) {
@@ -154,7 +154,7 @@ StorPowerActionName(
 
 static FORCEINLINE const PCHAR
 PowerTypeName(
-    IN  POWER_STATE_TYPE    Type
+    _In_ POWER_STATE_TYPE   Type
     )
 {
 #define _POWER_TYPE_NAME(_Type) \
@@ -174,7 +174,7 @@ PowerTypeName(
 
 static FORCEINLINE const PCHAR
 PowerSystemStateName(
-    IN  SYSTEM_POWER_STATE State
+    _In_ SYSTEM_POWER_STATE State
     )
 {
 #define _POWER_SYSTEM_STATE_NAME(_State)    \
@@ -200,7 +200,7 @@ PowerSystemStateName(
 
 static FORCEINLINE const PCHAR
 PowerDeviceStateName(
-    IN  DEVICE_POWER_STATE State
+    _In_ DEVICE_POWER_STATE State
     )
 {
 #define _POWER_DEVICE_STATE_NAME(_State)    \
@@ -224,7 +224,7 @@ PowerDeviceStateName(
 
 static FORCEINLINE const PCHAR
 PowerActionName(
-    IN  POWER_ACTION    Type
+    _In_ POWER_ACTION   Type
     )
 {
 #define _POWER_ACTION_NAME(_Type)   \
@@ -250,7 +250,7 @@ PowerActionName(
 
 static FORCEINLINE const PCHAR
 PowerMinorFunctionName(
-    IN  ULONG   MinorFunction
+    _In_ ULONG  MinorFunction
     )
 {
 #define _POWER_MINOR_FUNCTION_NAME(_Function)   \
@@ -272,7 +272,7 @@ PowerMinorFunctionName(
 
 static FORCEINLINE const PCHAR
 PnpMinorFunctionName(
-    IN  ULONG   Function
+    _In_ ULONG  Function
     )
 {
 #define _PNP_MINOR_FUNCTION_NAME(_Function) \
@@ -315,7 +315,7 @@ PnpMinorFunctionName(
 
 static FORCEINLINE const PCHAR
 PartialResourceDescriptorTypeName(
-    IN  UCHAR   Type
+    _In_ UCHAR  Type
     )
 {
 #define _PARTIAL_RESOURCE_DESCRIPTOR_TYPE_NAME(_Type)   \
@@ -344,7 +344,7 @@ PartialResourceDescriptorTypeName(
 
 static FORCEINLINE const PCHAR
 PnPMinorFunction(
-    IN  ULONG   Func
+    _In_ ULONG  Func
     )
 {
 #define _PNP_MINOR_FUNC_NAME(_func)     \
@@ -385,7 +385,7 @@ PnPMinorFunction(
 
 static FORCEINLINE const PCHAR
 QueryDeviceRelationsName(
-    IN  ULONG   Type
+    _In_ ULONG  Type
     )
 {
     switch (Type) {
diff --git a/include/xencrsh_interface.h b/include/xencrsh_interface.h
index 2f42316..4931928 100644
--- a/include/xencrsh_interface.h
+++ b/include/xencrsh_interface.h
@@ -39,7 +39,7 @@
 
 XEN_API NTSTATUS
 XencrshEntryPoint(
-    IN  PDRIVER_OBJECT  _DriverObject
+    _In_ PDRIVER_OBJECT _DriverObject
     );
 
 #endif // _XENCRSH_XENCRSH_INTERFACE_H
diff --git a/src/xencrsh/assert.h b/src/xencrsh/assert.h
index 72ae0cc..d5b64d6 100644
--- a/src/xencrsh/assert.h
+++ b/src/xencrsh/assert.h
@@ -154,10 +154,10 @@ __Bug(
 
 static __inline BOOLEAN
 _IsZeroMemory(
-    _In_ PCSTR          Caller,
-    _In_ PCSTR          Name,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length
+    _In_ PCSTR      Caller,
+    _In_ PCSTR      Name,
+    _In_ PVOID      Buffer,
+    _In_ ULONG      Length
     )
 {
     ULONG           Offset;
@@ -178,10 +178,10 @@ _IsZeroMemory(
 
 static __inline BOOLEAN
 _IsZeroMemory(
-    _In_ PCSTR          Caller,
-    _In_ PCSTR          Name,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length
+    _In_ PCSTR  Caller,
+    _In_ PCSTR  Name,
+    _In_ PVOID  Buffer,
+    _In_ ULONG  Length
     )
 {
     UNREFERENCED_PARAMETER(Caller);
diff --git a/src/xencrsh/austere.c b/src/xencrsh/austere.c
index 95a6422..631a930 100644
--- a/src/xencrsh/austere.c
+++ b/src/xencrsh/austere.c
@@ -99,14 +99,14 @@ __CompactBigHeap()
 }
 static PVOID
 __AllocBig(
-    IN  PCHAR   Caller,
-    IN  ULONG   Size
+    _In_ PCHAR  Caller,
+    _In_ ULONG  Size
     )
 {
-    ULONG   NumPages;
-    ULONG   i, n;
-    PVOID   Res;
-    BOOLEAN repeat = FALSE;
+    ULONG       NumPages;
+    ULONG       i, n;
+    PVOID       Res;
+    BOOLEAN     repeat = FALSE;
     
     NumPages = (ULONG)((Size + PAGE_SIZE - 1) / (PAGE_SIZE));
 
@@ -140,10 +140,10 @@ retry:
 }
 static VOID
 __FreeBig(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
-    int   StartNr;
+    int         StartNr;
     StartNr = (int)(((PUCHAR)Buffer - AustereHeap.BigHeapStart) / PAGE_SIZE);
     if (StartNr < 0 || (ULONG)StartNr >= AustereHeap.NumHeapPages)
         return;
@@ -156,12 +156,12 @@ __FreeBig(
 }
 static PVOID
 __TrySmall(
-    IN  PXENCRSH_SUBHEAP    SubHeap,
-    IN  ULONG               Size
+    _In_ PXENCRSH_SUBHEAP   SubHeap,
+    _In_ ULONG              Size
     )
 {
-    PUCHAR      Ptr;
-    ULONG       ThisSize;
+    PUCHAR                  Ptr;
+    ULONG                   ThisSize;
     
     if (SubHeap->Free < Size)
         return NULL;
@@ -226,8 +226,8 @@ __NewSubHeap(
 }
 static PVOID
 __AllocSmall(
-    IN  PCHAR   Caller,
-    IN  ULONG   Size
+    _In_ PCHAR          Caller,
+    _In_ ULONG          Size
     )
 {
     PXENCRSH_SUBHEAP    SubHeap;
@@ -271,7 +271,7 @@ __AllocSmall(
 }
 static VOID
 __FreeSmall(
-    IN  PVOID   Buffer
+    _In_ PVOID          Buffer
     )
 {
     PXENCRSH_SUBHEAP    SubHeap;
@@ -338,8 +338,8 @@ __FreeSmall(
 
 static FORCEINLINE PVOID
 __Round(
-    IN  PVOID               Buffer,
-    IN  ULONG               RoundTo
+    _In_ PVOID  Buffer,
+    _In_ ULONG  RoundTo
     )
 {
     // round buffer to (normally PAGE_SIZE) boundary
@@ -376,11 +376,11 @@ __SubHeapSize()
 }
 PVOID
 __AustereAllocate(
-    IN  PCHAR   Caller,
-    IN  ULONG   Size
+    _In_ PCHAR  Caller,
+    _In_ ULONG  Size
     )
 {
-    PVOID   Res;
+    PVOID       Res;
 
     if (Size < sizeof(PVOID))
         Size = sizeof(PVOID);
@@ -406,8 +406,8 @@ __AustereAllocate(
 
 VOID
 __AustereFree(
-    IN  PCHAR   Caller,
-    IN  PVOID   Buffer
+    _In_ PCHAR      Caller,
+    _In_ PVOID      Buffer
     )
 {   
     const ULONG_PTR AustereHeapStart = (ULONG_PTR)AustereHeap.BigHeapStart;
diff --git a/src/xencrsh/austere.h b/src/xencrsh/austere.h
index b74053f..b5b8f8c 100644
--- a/src/xencrsh/austere.h
+++ b/src/xencrsh/austere.h
@@ -43,14 +43,14 @@ AustereInitialize();
 
 PVOID
 __AustereAllocate(
-    IN  PCHAR   Caller,
-    IN  ULONG   Size
+    _In_ PCHAR  Caller,
+    _In_ ULONG  Size
     );
 
 VOID
 __AustereFree(
-    IN  PCHAR   Caller,
-    IN  PVOID   Buffer
+    _In_ PCHAR  Caller,
+    _In_ PVOID  Buffer
     );
 
 #define AustereAllocate(x)  __AustereAllocate(__FUNCTION__, x);
diff --git a/src/xencrsh/buffer.c b/src/xencrsh/buffer.c
index 83b0601..8fd1702 100644
--- a/src/xencrsh/buffer.c
+++ b/src/xencrsh/buffer.c
@@ -100,12 +100,12 @@ BufferTerminate(
 
 BOOLEAN
 BufferGet(
-    OUT PULONG      BufferId,
-    OUT PFN_NUMBER* Pfn
+    _Out_ PULONG        BufferId,
+    _Outptr_ PFN_NUMBER *Pfn
     )
 {
-    ULONG           BufId;
-    PXENVBD_BUFFER  Buf;
+    ULONG               BufId;
+    PXENVBD_BUFFER      Buf;
 
     if (__Buffer.Next == 0) {
         LogWarning("failed to get buffer\n");
@@ -130,7 +130,7 @@ BufferGet(
 
 VOID
 BufferPut(
-    IN  ULONG       BufferId
+    _In_ ULONG  BufferId
     )
 {
     // copy the Pfn@Length to the Buffer, and release the BufferId to the free 
list
@@ -150,9 +150,9 @@ BufferPut(
 
 VOID
 BufferCopyIn(
-    IN  ULONG       BufferId,
-    IN  PVOID       Input,
-    IN  ULONG       Length
+    _In_ ULONG      BufferId,
+    _In_ PVOID      Input,
+    _In_ ULONG      Length
     )
 {
     PXENVBD_BUFFER  Buf;
@@ -170,9 +170,9 @@ BufferCopyIn(
 
 VOID
 BufferCopyOut(
-    IN  ULONG       BufferId,
-    IN  PVOID       Output,
-    IN  ULONG       Length
+    _In_ ULONG      BufferId,
+    _In_ PVOID      Output,
+    _In_ ULONG      Length
     )
 {
     PXENVBD_BUFFER  Buf;
diff --git a/src/xencrsh/buffer.h b/src/xencrsh/buffer.h
index 68a0f0f..5c54c03 100644
--- a/src/xencrsh/buffer.h
+++ b/src/xencrsh/buffer.h
@@ -47,27 +47,27 @@ BufferTerminate(
 
 extern BOOLEAN
 BufferGet(
-    OUT PULONG      BufferId,
-    OUT PFN_NUMBER* Pfn
+    _Out_ PULONG        BufferId,
+    _Outptr_ PFN_NUMBER *Pfn
     );
 
 extern VOID
 BufferPut(
-    IN  ULONG       BufferId
+    _In_ ULONG  BufferId
     );
 
 extern VOID
 BufferCopyIn(
-    IN  ULONG       BufferId,
-    IN  PVOID       Input,
-    IN  ULONG       Length
+    _In_ ULONG  BufferId,
+    _In_ PVOID  Input,
+    _In_ ULONG  Length
     );
 
 extern VOID
 BufferCopyOut(
-    IN  ULONG       BufferId,
-    IN  PVOID       Output,
-    IN  ULONG       Length
+    _In_ ULONG  BufferId,
+    _In_ PVOID  Output,
+    _In_ ULONG  Length
     );
     
 #endif // _XENVBD_BUFFER_H
diff --git a/src/xencrsh/driver.c b/src/xencrsh/driver.c
index beb5908..1bf6950 100644
--- a/src/xencrsh/driver.c
+++ b/src/xencrsh/driver.c
@@ -72,7 +72,7 @@ static PXENVBD_FDO              __XenvbdFdo;
 
 VOID
 DriverLinkFdo(
-    IN  PXENVBD_FDO             Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
     __XenvbdFdo = Fdo;
@@ -80,7 +80,7 @@ DriverLinkFdo(
 
 VOID
 DriverUnlinkFdo(
-    IN  PXENVBD_FDO             Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
     UNREFERENCED_PARAMETER(Fdo);
@@ -91,13 +91,13 @@ DriverUnlinkFdo(
 // Global Functions
 static FORCEINLINE PCHAR
 __DriverFormatV(
-    IN  PCHAR       Fmt,
-    IN  va_list     Args
+    _In_ PCHAR      Fmt,
+    _In_ va_list    Args
     )
 {
-    NTSTATUS    Status;
-    PCHAR       Str;
-    ULONG       Size = 32;
+    NTSTATUS        Status;
+    PCHAR           Str;
+    ULONG           Size = 32;
 
     for (;;) {
         Str = (PCHAR)AustereAllocate(Size);
@@ -124,12 +124,12 @@ __DriverFormatV(
 
 PCHAR
 DriverFormat(
-    IN  PCHAR       Format,
+    _In_ PCHAR  Format,
     ...
     )
 {
-    va_list Args;
-    PCHAR   Str;
+    va_list     Args;
+    PCHAR       Str;
 
     va_start(Args, Format);
     Str = __DriverFormatV(Format, Args);
@@ -143,7 +143,7 @@ HW_INITIALIZE       HwInitialize;
 
 BOOLEAN 
 HwInitialize(
-    IN  PVOID   HwDeviceExtension
+    _In_ PVOID  HwDeviceExtension
     )
 {
     UNREFERENCED_PARAMETER(HwDeviceExtension);
@@ -154,7 +154,7 @@ HW_INTERRUPT        HwInterrupt;
 
 BOOLEAN 
 HwInterrupt(
-    IN  PVOID   HwDeviceExtension
+    _In_ PVOID  HwDeviceExtension
     )
 {
     PXENVBD_PDO Pdo = FdoGetPdo((PXENVBD_FDO)HwDeviceExtension);
@@ -169,8 +169,8 @@ HW_RESET_BUS        HwResetBus;
 
 BOOLEAN 
 HwResetBus(
-    IN  PVOID   HwDeviceExtension,
-    IN  ULONG   PathId
+    _In_ PVOID  HwDeviceExtension,
+    _In_ ULONG  PathId
     )
 {
     UNREFERENCED_PARAMETER(PathId);
@@ -181,9 +181,9 @@ HW_ADAPTER_CONTROL  HwAdapterControl;
 
 SCSI_ADAPTER_CONTROL_STATUS
 HwAdapterControl(
-    IN  PVOID                       HwDeviceExtension,
-    IN  SCSI_ADAPTER_CONTROL_TYPE   ControlType,
-    IN  PVOID                       Parameters
+    _In_ PVOID                      HwDeviceExtension,
+    _In_ SCSI_ADAPTER_CONTROL_TYPE  ControlType,
+    _In_ PVOID                      Parameters
     )
 {
     return FdoAdapterControl((PXENVBD_FDO)HwDeviceExtension, ControlType, 
Parameters);
@@ -193,12 +193,12 @@ HW_FIND_ADAPTER     HwFindAdapter;
 
 ULONG
 HwFindAdapter(
-    IN  PVOID                               HwDeviceExtension,
-    IN  PVOID                               Context,
-    IN  PVOID                               BusInformation,
-    IN  PCHAR                               ArgumentString,
-    IN OUT PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
-    OUT PBOOLEAN                            Again
+    _In_ PVOID                              HwDeviceExtension,
+    _In_ PVOID                              Context,
+    _In_ PVOID                              BusInformation,
+    _In_ PCHAR                              ArgumentString,
+    _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo,
+    _Out_ PBOOLEAN                          Again
     )
 {
     UNREFERENCED_PARAMETER(Context);
@@ -213,8 +213,8 @@ HW_BUILDIO          HwBuildIo;
 
 BOOLEAN 
 HwBuildIo(
-    IN  PVOID               HwDeviceExtension,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PVOID                  HwDeviceExtension,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     return FdoBuildIo((PXENVBD_FDO)HwDeviceExtension, Srb);
@@ -224,8 +224,8 @@ HW_STARTIO          HwStartIo;
 
 BOOLEAN 
 HwStartIo(
-    IN  PVOID               HwDeviceExtension,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PVOID                  HwDeviceExtension,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     return FdoStartIo((PXENVBD_FDO)HwDeviceExtension, Srb);
@@ -237,7 +237,7 @@ HwStartIo(
 
 XEN_API NTSTATUS
 XencrshEntryPoint(
-    IN  PDRIVER_OBJECT  _DriverObject
+    _In_ PDRIVER_OBJECT     _DriverObject
     )
 {
     NTSTATUS                Status;
@@ -292,7 +292,7 @@ XencrshEntryPoint(
 //=============================================================================
 static FORCEINLINE WCHAR
 __ToUpper(
-    IN  WCHAR   Ch
+    _In_ WCHAR  Ch
     )
 {
     if (Ch >= L'a' && Ch <= L'z')
@@ -302,8 +302,8 @@ __ToUpper(
 
 static FORCEINLINE BOOLEAN
 __StrStarts(
-    IN  PWCHAR  Str,
-    IN  PWCHAR  Starts
+    _In_ PWCHAR Str,
+    _In_ PWCHAR Starts
     )
 {
     while (*Str != L'\0' && *Starts != L'\0') {
@@ -317,10 +317,10 @@ __StrStarts(
 
 NTSTATUS
 DllInitialize(
-    IN  PUNICODE_STRING RegistryPath
+    _In_ PUNICODE_STRING    RegistryPath
     )
 {
-    PWSTR       Name;
+    PWSTR                   Name;
 
     Name = wcsrchr(RegistryPath->Buffer, L'\\');
     if (Name) {
@@ -349,8 +349,8 @@ DRIVER_INITIALIZE   DriverEntry;
 
 NTSTATUS
 DriverEntry(
-    IN  PDRIVER_OBJECT  _DriverObject,
-    IN  PUNICODE_STRING RegistryPath
+    _In_ PDRIVER_OBJECT     _DriverObject,
+    _In_ PUNICODE_STRING    RegistryPath
     )
 {
     UNREFERENCED_PARAMETER(_DriverObject);
@@ -363,7 +363,7 @@ DRIVER_UNLOAD               DriverUnload;
 
 VOID
 DriverUnload(
-    IN PDRIVER_OBJECT  _DriverObject
+    _In_ PDRIVER_OBJECT _DriverObject
     )
 {
     UNREFERENCED_PARAMETER(_DriverObject);
diff --git a/src/xencrsh/driver.h b/src/xencrsh/driver.h
index 4f9cbc5..a0043ca 100644
--- a/src/xencrsh/driver.h
+++ b/src/xencrsh/driver.h
@@ -71,18 +71,18 @@
 // Fdo Device Extension management
 VOID
 DriverLinkFdo(
-    IN  PXENVBD_FDO             Fdo
+    _In_ PXENVBD_FDO    Fdo
     );
 
 VOID
 DriverUnlinkFdo(
-    IN  PXENVBD_FDO             Fdo
+    _In_ PXENVBD_FDO    Fdo
     );
 
 // Global Functions
 PCHAR
 DriverFormat(
-    IN  PCHAR                   Format,
+    _In_ PCHAR  Format,
     ...
     );
 
diff --git a/src/xencrsh/evtchn.c b/src/xencrsh/evtchn.c
index 34a9b28..09565d1 100644
--- a/src/xencrsh/evtchn.c
+++ b/src/xencrsh/evtchn.c
@@ -54,8 +54,8 @@
 
 static FORCEINLINE LONG_PTR
 EventChannelOp(
-    IN  ULONG   Command,
-    IN  PVOID   Argument
+    _In_ ULONG  Command,
+    _In_ PVOID  Argument
     )
 {
     return Hypercall2(LONG_PTR, event_channel_op, Command, Argument);
@@ -63,7 +63,7 @@ EventChannelOp(
 
 NTSTATUS
 EventChannelSend(
-    IN  ULONG           LocalPort
+    _In_ ULONG          LocalPort
     )
 {
     struct evtchn_send  op;
@@ -115,9 +115,9 @@ fail1:
 
 NTSTATUS
 EventChannelBindInterDomain(
-    IN  USHORT                      RemoteDomain,
-    IN  ULONG                       RemotePort,
-    OUT PULONG                      LocalPort
+    _In_ USHORT                     RemoteDomain,
+    _In_ ULONG                      RemotePort,
+    _Out_ PULONG                    LocalPort
     )
 {
     struct evtchn_bind_interdomain  op;
@@ -146,9 +146,9 @@ fail1:
 
 NTSTATUS
 EventChannelQueryInterDomain(
-    IN  ULONG               LocalPort,
-    OUT PUSHORT             RemoteDomain,
-    OUT PULONG              RemotePort
+    _In_ ULONG              LocalPort,
+    _Out_ PUSHORT           RemoteDomain,
+    _Out_ PULONG            RemotePort
     )
 {
     struct evtchn_status    op;
@@ -185,8 +185,8 @@ fail1:
 
 NTSTATUS
 EventChannelAllocate(
-    IN  ULONG           Domain,
-    OUT PULONG          LocalPort
+    _In_ ULONG                  Domain,
+    _Out_ PULONG                LocalPort
     )
 {
     struct evtchn_alloc_unbound op;
@@ -215,7 +215,7 @@ fail1:
 
 NTSTATUS
 EventChannelClose(
-    IN  ULONG           LocalPort
+    _In_ ULONG          LocalPort
     )
 {
     struct evtchn_close op;
diff --git a/src/xencrsh/evtchn.h b/src/xencrsh/evtchn.h
index 9ccfde3..38b56c0 100644
--- a/src/xencrsh/evtchn.h
+++ b/src/xencrsh/evtchn.h
@@ -39,7 +39,7 @@
 
 NTSTATUS
 EventChannelSend(
-    IN  ULONG           LocalPort
+    _In_ ULONG  LocalPort
     );
 
 NTSTATUS
@@ -49,27 +49,27 @@ EventChannelReset(
 
 NTSTATUS
 EventChannelBindInterDomain(
-    IN  USHORT          RemoteDomain,
-    IN  ULONG           RemotePort,
-    OUT PULONG          LocalPort
+    _In_ USHORT     RemoteDomain,
+    _In_ ULONG      RemotePort,
+    _Out_ PULONG    LocalPort
     );
 
 NTSTATUS
 EventChannelQueryInterDomain(
-    IN  ULONG           LocalPort,
-    OUT PUSHORT         RemoteDomain,
-    OUT PULONG          RemotePort
+    _In_ ULONG      LocalPort,
+    _Out_ PUSHORT   RemoteDomain,
+    _Out_ PULONG    RemotePort
     );
 
 NTSTATUS
 EventChannelAllocate(
-    IN  ULONG           Domain,
-    OUT PULONG          LocalPort
+    _In_ ULONG      Domain,
+    _Out_ PULONG    LocalPort
     );
 
 NTSTATUS
 EventChannelClose(
-    IN  ULONG           LocalPort
+    _In_ ULONG  LocalPort
     );
 
 
diff --git a/src/xencrsh/fdo.c b/src/xencrsh/fdo.c
index 78027db..79b57d1 100644
--- a/src/xencrsh/fdo.c
+++ b/src/xencrsh/fdo.c
@@ -61,7 +61,7 @@ struct _XENVBD_FDO {
 // Initialize, Start, Stop
 static FORCEINLINE PCHAR
 __Next(
-    IN  PCHAR                   Ptr
+    _In_ PCHAR  Ptr
     )
 {
     if (Ptr == NULL)
@@ -117,8 +117,8 @@ fail1:
 }
 static BOOLEAN
 FdoGetFeatureFlag(
-    IN  PCHAR                   Path,
-    IN  PCHAR                   Feature
+    _In_ PCHAR  Path,
+    _In_ PCHAR  Feature
     )
 {
     BOOLEAN     Ret = FALSE;
@@ -138,13 +138,13 @@ FdoGetFeatureFlag(
 }
 static FORCEINLINE NTSTATUS
 FdoCreateTarget(
-    IN  PXENVBD_FDO             Fdo,
-    IN  PCHAR                   DeviceId,
-    IN  ULONG                   TargetId
+    _In_ PXENVBD_FDO    Fdo,
+    _In_ PCHAR          DeviceId,
+    _In_ ULONG          TargetId
     )
 {
-    NTSTATUS        Status;
-    PXENVBD_PDO     Pdo;
+    NTSTATUS            Status;
+    PXENVBD_PDO         Pdo;
 
     LogTrace("===> %p, %s, %d\n", Fdo, DeviceId, TargetId);
 
@@ -158,14 +158,14 @@ FdoCreateTarget(
 }
 static NTSTATUS
 FdoFindTarget(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
-    NTSTATUS        Status;
-    ULONG           TargetId;
-    PCHAR           TargetPath;
-    PCHAR           Disk = NULL;
-    const ULONG     OperatingMode = DriverGetOperatingMode();
+    NTSTATUS            Status;
+    ULONG               TargetId;
+    PCHAR               TargetPath;
+    PCHAR               Disk = NULL;
+    const ULONG         OperatingMode = DriverGetOperatingMode();
 
     LogTrace("====>\n");
 
@@ -213,10 +213,10 @@ done:
 
 static FORCEINLINE BOOLEAN
 FdoInitialize(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS            Status;
 
     LogTrace("====>\n");
 
@@ -264,7 +264,7 @@ fail:
 
 VOID
 FdoTerminate(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
     LogTrace("====>\n");
@@ -292,7 +292,7 @@ FdoSizeofXenvbdFdo(
 
 PXENVBD_PDO
 FdoGetPdo(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
     return Fdo->Target;
@@ -303,8 +303,8 @@ FdoGetPdo(
 
 FORCEINLINE VOID
 FdoCompleteSrb(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     StorPortNotification(RequestComplete, Fdo, Srb);
@@ -314,10 +314,10 @@ FdoCompleteSrb(
 // StorPort Methods
 BOOLEAN
 FdoResetBus(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     )
 {
-    PXENVBD_PDO     Pdo;
+    PXENVBD_PDO         Pdo;
 
     LogTrace("===> (Irql=%d)\n", KeGetCurrentIrql());
 
@@ -336,9 +336,9 @@ FdoResetBus(
 
 SCSI_ADAPTER_CONTROL_STATUS
 FdoAdapterControl(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  SCSI_ADAPTER_CONTROL_TYPE   ControlType,
-    IN  PVOID                       Parameters
+    _In_ PXENVBD_FDO                Fdo,
+    _In_ SCSI_ADAPTER_CONTROL_TYPE  ControlType,
+    _In_ PVOID                      Parameters
     )
 {
     LogTrace("%s ===> (Irql=%d)\n", ScsiAdapterControlTypeName(ControlType), 
KeGetCurrentIrql());
@@ -372,8 +372,8 @@ FdoAdapterControl(
 
 ULONG
 FdoFindAdapter(
-    IN  PXENVBD_FDO                 Fdo,
-    IN OUT PPORT_CONFIGURATION_INFORMATION  ConfigInfo
+    _In_ PXENVBD_FDO                        Fdo,
+    _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo
     )
 {
     LogTrace("===> (Irql=%d)\n", KeGetCurrentIrql());
@@ -409,11 +409,11 @@ FdoFindAdapter(
 
 BOOLEAN 
 FdoBuildIo(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT  SrbExt = GetSrbExt(Srb);
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
 
     RtlZeroMemory(SrbExt, sizeof(XENVBD_SRBEXT));
     Srb->SrbStatus = SRB_STATUS_INVALID_REQUEST;
@@ -448,7 +448,7 @@ FdoBuildIo(
 
 static FORCEINLINE PCHAR
 SrbFunctionName(
-    IN  UCHAR                       Func
+    _In_ UCHAR  Func
     )
 {
     switch (Func) {
@@ -463,12 +463,12 @@ SrbFunctionName(
 }
 BOOLEAN 
 FdoStartIo(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_PDO Pdo = NULL;
-    BOOLEAN     CompleteSrb = TRUE;
+    PXENVBD_PDO                 Pdo = NULL;
+    BOOLEAN                     CompleteSrb = TRUE;
  
     if (Fdo->Target) {
         Pdo = Fdo->Target;
diff --git a/src/xencrsh/fdo.h b/src/xencrsh/fdo.h
index a3fc3fb..2ecfb28 100644
--- a/src/xencrsh/fdo.h
+++ b/src/xencrsh/fdo.h
@@ -43,7 +43,7 @@ typedef struct _XENVBD_FDO XENVBD_FDO, *PXENVBD_FDO;
 
 extern VOID
 FdoTerminate(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     );
 
 // Query Methods
@@ -53,45 +53,45 @@ FdoSizeofXenvbdFdo(
 
 extern PXENVBD_PDO
 FdoGetPdo(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     );
 
 // SRB Methods
 extern VOID
 FdoCompleteSrb(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 // StorPort Methods
 extern BOOLEAN
 FdoResetBus(
-    IN  PXENVBD_FDO                 Fdo
+    _In_ PXENVBD_FDO    Fdo
     );
 
 extern SCSI_ADAPTER_CONTROL_STATUS
 FdoAdapterControl(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  SCSI_ADAPTER_CONTROL_TYPE   ControlType,
-    IN  PVOID                       Parameters
+    _In_ PXENVBD_FDO                Fdo,
+    _In_ SCSI_ADAPTER_CONTROL_TYPE  ControlType,
+    _In_ PVOID                      Parameters
     );
 
 extern ULONG
 FdoFindAdapter(
-    IN  PXENVBD_FDO                 Fdo,
-    IN OUT PPORT_CONFIGURATION_INFORMATION  ConfigInfo
+    _In_ PXENVBD_FDO                        Fdo,
+    _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo
     );
 
 extern BOOLEAN 
 FdoBuildIo(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 extern BOOLEAN 
 FdoStartIo(
-    IN  PXENVBD_FDO                 Fdo,
-    IN  PSCSI_REQUEST_BLOCK         Srb
+    _In_ PXENVBD_FDO            Fdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 #endif // _XENVBD_FDO_H
diff --git a/src/xencrsh/frontend.c b/src/xencrsh/frontend.c
index 0cb4dd6..3a269a1 100644
--- a/src/xencrsh/frontend.c
+++ b/src/xencrsh/frontend.c
@@ -60,7 +60,7 @@ typedef enum _XENBUS_STATE {
 
 static FORCEINLINE const PCHAR
 __XenbusStateName(
-    IN  XENBUS_STATE                        State
+    _In_ XENBUS_STATE   State
     )
 {
     switch (State) {
@@ -76,7 +76,7 @@ __XenbusStateName(
 }
 static FORCEINLINE const PCHAR
 __XenvbdStateName(
-    IN  XENVBD_STATE                        State
+    _In_ XENVBD_STATE   State
     )
 {
     switch (State) {
@@ -92,14 +92,14 @@ __XenvbdStateName(
 //=============================================================================
 static FORCEINLINE PVOID
 __FrontendAlloc(
-    IN  ULONG                   Size
+    _In_ ULONG  Size
     )
 {
     return AustereAllocate(Size);
 }
 static FORCEINLINE VOID
 __FrontendFree(
-    IN  PVOID                   Buffer
+    _In_ PVOID  Buffer
     )
 {
     AustereFree(Buffer);
@@ -120,14 +120,14 @@ __WriteMemoryBarrier()
 }
 static FORCEINLINE BOOLEAN
 __HasUnconsumedResponses(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     return (Frontend->SharedRing->rsp_prod - Frontend->FrontRing.rsp_cons) > 0;
 }
 static FORCEINLINE BOOLEAN
 __FinalCheckForResponses(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     if (__HasUnconsumedResponses(Frontend))
@@ -141,7 +141,7 @@ __FinalCheckForResponses(
 }
 static FORCEINLINE BOOLEAN
 __IsValidStatus(
-    IN  SHORT                   Status
+    _In_ SHORT  Status
     )
 {
     if (Status == BLKIF_RSP_OKAY ||
@@ -152,15 +152,15 @@ __IsValidStatus(
 }
 static FORCEINLINE ULONG
 __Idx(
-    IN  ULONG   Index,
-    IN  ULONG   nr_ents
+    _In_ ULONG  Index,
+    _In_ ULONG  nr_ents
     )
 {
     return Index & (nr_ents - 1);
 }
 static FORCEINLINE VOID
 FrontendCompleteResponses(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     for (;;) {
@@ -202,7 +202,7 @@ FrontendCompleteResponses(
 
 VOID
 FrontendEvtchnCallback(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     // complete responses
@@ -221,8 +221,8 @@ FrontendEvtchnCallback(
 // Ring Slots
 BOOLEAN
 FrontendCanSubmitRequest(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  ULONG                   NumRequests
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ ULONG              NumRequests
     )
 {
     // RING_PROD_SLOTS_AVAIL(...)
@@ -234,12 +234,12 @@ FrontendCanSubmitRequest(
 
 VOID
 FrontendInsertRequestOnRing(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  PXENVBD_REQUEST         Request
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PXENVBD_REQUEST    Request
     )
 {
-    ULONG               Index;
-    blkif_request_t*    RingReq;
+    ULONG                   Index;
+    blkif_request_t*        RingReq;
     //blkif_request_discard_t*    Discard;
 
     RingReq = RING_GET_REQUEST(&Frontend->FrontRing, 
Frontend->FrontRing.req_prod_pvt);
@@ -283,7 +283,7 @@ FrontendInsertRequestOnRing(
 
 VOID
 FrontendPushRequestAndCheckNotify(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     // RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(..)
@@ -308,17 +308,17 @@ FrontendPushRequestAndCheckNotify(
 extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID Buffer);
 static FORCEINLINE PFN_NUMBER
 __VirtToPfn(
-    IN  PVOID                   VirtAddr
+    _In_ PVOID          VirtAddr
     )
 {
-    PHYSICAL_ADDRESS PhysAddr = MmGetPhysicalAddress(VirtAddr);
+    PHYSICAL_ADDRESS    PhysAddr = MmGetPhysicalAddress(VirtAddr);
     return (PFN_NUMBER)(ULONG_PTR)(PhysAddr.QuadPart >> 12);
 }
 //=============================================================================
 static FORCEINLINE ULONG
 __Min(
-    IN  ULONG                   A,
-    IN  ULONG                   B
+    _In_ ULONG  A,
+    _In_ ULONG  B
     )
 {
     if (A < B)  return A;
@@ -326,11 +326,11 @@ __Min(
 }
 static FORCEINLINE NTSTATUS
 __UpdateBackendPath(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
-    PCHAR       Path;
+    NTSTATUS                Status;
+    PCHAR                   Path;
 
     if (Frontend->BackendPath) {
         LogTrace("<< %s\n", Frontend->BackendPath);
@@ -358,13 +358,13 @@ __UpdateBackendPath(
 }
 static FORCEINLINE NTSTATUS
 __ReadState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  PCHAR                   Path,
-    OUT PXENBUS_STATE           State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              Path,
+    _Out_ PXENBUS_STATE     State
     )
 {
-    NTSTATUS        Status;
-    PCHAR           Buffer;
+    NTSTATUS                Status;
+    PCHAR                   Buffer;
 
     UNREFERENCED_PARAMETER(Frontend);
 
@@ -383,12 +383,12 @@ fail:
 }
 static FORCEINLINE NTSTATUS
 __PollState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN OUT PXENBUS_STATE        State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Inout_ PXENBUS_STATE   State
     )
 {
-    NTSTATUS        Status;
-    XENBUS_STATE    OldState = *State;
+    NTSTATUS                Status;
+    XENBUS_STATE            OldState = *State;
 
     while (OldState == *State) {
         Status = __ReadState(Frontend, Frontend->BackendPath, State);
@@ -407,19 +407,19 @@ fail:
 }
 static NTSTATUS
 __WaitState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN OUT PXENBUS_STATE        State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Inout_ PXENBUS_STATE   State
     )
 {
     return __PollState(Frontend, State);
 }
 static FORCEINLINE NTSTATUS
 ___SetState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  XENBUS_STATE            State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENBUS_STATE       State
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS                Status;
 
     Status = StorePrintf(NULL, Frontend->FrontendPath,
                     "state", "%u", State);
@@ -431,10 +431,10 @@ ___SetState(
 }
 static FORCEINLINE NTSTATUS
 __WriteTargetPath(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS                Status;
 
     Status = StorePrintf(NULL, Frontend->TargetPath, 
                         "frontend", "%s", Frontend->FrontendPath);
@@ -456,11 +456,11 @@ out:
 }
 static VOID
 __ReadFeatures(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
-    PCHAR       Buffer;
+    NTSTATUS                Status;
+    PCHAR                   Buffer;
 
     Status = StoreRead(NULL, Frontend->BackendPath,
                         "feature-barrier", &Buffer);
@@ -497,12 +497,12 @@ __ReadFeatures(
 }
 static VOID
 __ReadDiskInfo(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
-    PCHAR       Buffer;
-    BOOLEAN     Updated = FALSE;
+    NTSTATUS                Status;
+    PCHAR                   Buffer;
+    BOOLEAN                 Updated = FALSE;
 
     Status = StoreRead(NULL, Frontend->BackendPath, 
                         "info", &Buffer);
@@ -556,12 +556,12 @@ __ReadDiskInfo(
 }
 static FORCEINLINE NTSTATUS
 __AllocRing(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
-    ULONG       RingRef;
-    PFN_NUMBER  Pfn;
+    NTSTATUS                Status;
+    ULONG                   RingRef;
+    PFN_NUMBER              Pfn;
 
     // SharedRing
     ASSERT3P(Frontend->SharedRing, ==, NULL);
@@ -615,7 +615,7 @@ fail1:
 }
 static FORCEINLINE VOID
 __FreeRing(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     // EVTCHN
@@ -640,10 +640,10 @@ __FreeRing(
 }
 static NTSTATUS
 __WriteRing(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS                Status;
     
     for (;;) {
         PVOID                       Transaction;
@@ -698,11 +698,11 @@ abort:
 //=============================================================================
 static NTSTATUS
 FrontendClose(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XENBUS_STATE    BackendState;
+    NTSTATUS                Status;
+    XENBUS_STATE            BackendState;
 
     // get/update backend path
     Status = __UpdateBackendPath(Frontend);
@@ -774,11 +774,11 @@ fail1:
 }
 static NTSTATUS
 FrontendPrepare(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XENBUS_STATE    BackendState;
+    NTSTATUS                Status;
+    XENBUS_STATE            BackendState;
 
     // ASSERT(Backend : CLOSED)
     //__AssertBackendState(Frontend, XENBUS_STATE_CLOSED);
@@ -825,11 +825,11 @@ fail1:
 }
 static NTSTATUS
 FrontendConnect(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XENBUS_STATE    BackendState;
+    NTSTATUS                Status;
+    XENBUS_STATE            BackendState;
 
     // ASSERT(Backend: INITWAIT)
     //__AssertBackendState(Frontend, XENBUS_STATE_INITWAIT);
@@ -889,7 +889,7 @@ fail1:
 }
 static FORCEINLINE VOID
 FrontendDisconnect(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     // Free Ring, Close Evtchn, Gnttab unmap
@@ -897,14 +897,14 @@ FrontendDisconnect(
 }
 static FORCEINLINE VOID
 FrontendEnable(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     Frontend->Connected = TRUE;
 }
 static FORCEINLINE VOID
 FrontendDisable(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     Frontend->Connected = FALSE;
@@ -913,10 +913,10 @@ FrontendDisable(
 // Init/Term
 NTSTATUS
 FrontendCreate(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  PCHAR                   DeviceId, 
-    IN  ULONG                   TargetId, 
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              DeviceId,
+    _In_ ULONG              TargetId,
+    _In_ PXENVBD_PDO        Pdo
     )
 {
     LogTrace("Target[%d] @ (%d) =====>\n", TargetId, KeGetCurrentIrql());
@@ -950,10 +950,10 @@ fail1:
 
 VOID
 FrontendDestroy(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    const ULONG TargetId = Frontend->TargetId;
+    const ULONG             TargetId = Frontend->TargetId;
 
     LogTrace("Target[%d] @ (%d) =====>\n", TargetId, KeGetCurrentIrql());
 
@@ -979,13 +979,13 @@ FrontendDestroy(
 
 NTSTATUS
 FrontendSetState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  XENVBD_STATE            State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_STATE       State
     )
 {
-    NTSTATUS    Status;
-    const ULONG TargetId = Frontend->TargetId;
-    BOOLEAN     Failed = FALSE;
+    NTSTATUS                Status;
+    const ULONG             TargetId = Frontend->TargetId;
+    BOOLEAN                 Failed = FALSE;
 
     LogTrace("Target[%d] @ (%d) =====>\n", TargetId, KeGetCurrentIrql());
     LogVerbose("Target[%d] : %s ----> %s\n", TargetId, 
__XenvbdStateName(Frontend->State), 
@@ -1115,13 +1115,13 @@ FrontendSetState(
 
 static FORCEINLINE NTSTATUS
 __WaitState2(
-    IN  PCHAR                   BackendPath,
-    IN OUT PXENBUS_STATE        State
+    _In_ PCHAR              BackendPath,
+    _Inout_ PXENBUS_STATE   State
     )
 {
-    NTSTATUS        Status;
-    PCHAR           Buffer;
-    XENBUS_STATE    OldState = *State;
+    NTSTATUS                Status;
+    PCHAR                   Buffer;
+    XENBUS_STATE            OldState = *State;
 
     while (OldState == *State) {
         Status = StoreRead(NULL, BackendPath, "state", &Buffer);
@@ -1142,11 +1142,11 @@ fail:
 }
 static FORCEINLINE NTSTATUS
 ___SetState2(
-    IN  PCHAR                   FrontendPath,
-    IN  XENBUS_STATE            State
+    _In_ PCHAR          FrontendPath,
+    _In_ XENBUS_STATE   State
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS            Status;
 
     Status = StorePrintf(NULL, FrontendPath,
                     "state", "%u", State);
@@ -1158,8 +1158,8 @@ ___SetState2(
 }
 NTSTATUS
 FrontendCloseTarget(
-    IN  PCHAR                   FrontendPath,
-    IN  PCHAR                   BackendPath
+    _In_ PCHAR      FrontendPath,
+    _In_ PCHAR      BackendPath
     )
 {
     NTSTATUS        Status;
diff --git a/src/xencrsh/frontend.h b/src/xencrsh/frontend.h
index 5b0030a..af2c71a 100644
--- a/src/xencrsh/frontend.h
+++ b/src/xencrsh/frontend.h
@@ -94,50 +94,50 @@ typedef struct _XENVBD_FRONTEND {
 // Init/Term
 extern NTSTATUS
 FrontendCreate(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  PCHAR                   DeviceId, 
-    IN  ULONG                   TargetId, 
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              DeviceId,
+    _In_ ULONG              TargetId,
+    _In_ PXENVBD_PDO        Pdo
     );
 
 extern VOID
 FrontendDestroy(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 extern NTSTATUS
 FrontendSetState(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  XENVBD_STATE            State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_STATE       State
     );
 
 extern NTSTATUS
 FrontendCloseTarget(
-    IN  PCHAR                   FrontendPath,
-    IN  PCHAR                   BackendPath
+    _In_ PCHAR  FrontendPath,
+    _In_ PCHAR  BackendPath
     );
 
 // Ring Slots
 extern VOID
 FrontendEvtchnCallback(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 extern BOOLEAN
 FrontendCanSubmitRequest(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  ULONG                   NumRequests
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ ULONG              NumRequests
     );
 
 extern VOID
 FrontendInsertRequestOnRing(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  PXENVBD_REQUEST         Request
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PXENVBD_REQUEST    Request
     );
 
 extern VOID
 FrontendPushRequestAndCheckNotify(
-    IN  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 #endif // _XENVBD_FRONTEND_H
diff --git a/src/xencrsh/gnttab.c b/src/xencrsh/gnttab.c
index 23010aa..d68a16e 100644
--- a/src/xencrsh/gnttab.c
+++ b/src/xencrsh/gnttab.c
@@ -91,16 +91,16 @@ static UCHAR __GnttabSection[(GNTTAB_MAXIMUM_FRAME_COUNT + 
1) * PAGE_SIZE];
 extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID Buffer);
 static FORCEINLINE PFN_NUMBER
 __VirtToPfn(
-    IN  PVOID                   VirtAddr
+    _In_ PVOID          VirtAddr
     )
 {
-    PHYSICAL_ADDRESS PhysAddr = MmGetPhysicalAddress(VirtAddr);
+    PHYSICAL_ADDRESS    PhysAddr = MmGetPhysicalAddress(VirtAddr);
     return (PFN_NUMBER)(ULONG_PTR)(PhysAddr.QuadPart >> PAGE_SHIFT);
 }
 
 NTSTATUS
 GnttabGet(
-    OUT PULONG                      Reference
+    _Out_ PULONG                    Reference
     )
 {
     PGNTTAB_REFERENCE_DESCRIPTOR    Descriptor;
@@ -127,7 +127,7 @@ gnttab_full:
 
 VOID
 GnttabPut(
-    IN  ULONG                       Reference
+    _In_ ULONG                      Reference
     )
 {
     PGNTTAB_REFERENCE_DESCRIPTOR    Descriptor;
@@ -147,10 +147,10 @@ GnttabPut(
 
 VOID
 GnttabPermitForeignAccess(
-    IN  ULONG                       Reference,
-    IN  USHORT                      Domain,
-    IN  PFN_NUMBER                  Frame,
-    IN  BOOLEAN                     ReadOnly
+    _In_ ULONG                      Reference,
+    _In_ USHORT                     Domain,
+    _In_ PFN_NUMBER                 Frame,
+    _In_ BOOLEAN                    ReadOnly
     )
 {
     PGNTTAB_REFERENCE_DESCRIPTOR    Descriptor;
@@ -176,7 +176,7 @@ GnttabPermitForeignAccess(
 
 VOID
 GnttabRevokeForeignAccess(
-    IN  ULONG                       Reference
+    _In_ ULONG                      Reference
     )
 {
     grant_entry_v1_t                *Entry;
@@ -213,8 +213,8 @@ GnttabRevokeForeignAccess(
 
 static FORCEINLINE PVOID
 __Round(
-    IN  PVOID               Buffer,
-    IN  ULONG               RoundTo
+    _In_ PVOID  Buffer,
+    _In_ ULONG  RoundTo
     )
 {
     // round buffer to (normally PAGE_SIZE) boundary
diff --git a/src/xencrsh/gnttab.h b/src/xencrsh/gnttab.h
index 72350ed..456162f 100644
--- a/src/xencrsh/gnttab.h
+++ b/src/xencrsh/gnttab.h
@@ -44,25 +44,25 @@ GnttabTerminate();
 
 NTSTATUS
 GnttabGet(
-    OUT PULONG                      Reference
+    _Out_ PULONG    Reference
     );
 
 VOID
 GnttabPut(
-    IN  ULONG                       Reference
+    _In_ ULONG  Reference
     );
 
 VOID
 GnttabPermitForeignAccess(
-    IN  ULONG                       Reference,
-    IN  USHORT                      Domain,
-    IN  PFN_NUMBER                  Frame,
-    IN  BOOLEAN                     ReadOnly
+    _In_ ULONG      Reference,
+    _In_ USHORT     Domain,
+    _In_ PFN_NUMBER Frame,
+    _In_ BOOLEAN    ReadOnly
     );
 
 VOID
 GnttabRevokeForeignAccess(
-    IN  ULONG                       Reference
+    _In_ ULONG  Reference
     );
 
 #endif // _XENVBD_GNTTAB_H
diff --git a/src/xencrsh/hvm.c b/src/xencrsh/hvm.c
index 82230ef..f1b8c23 100644
--- a/src/xencrsh/hvm.c
+++ b/src/xencrsh/hvm.c
@@ -60,12 +60,12 @@ extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID  
BaseAddress);
 
 static FORCEINLINE NTSTATUS
 MemoryOp(
-    IN  ULONG       Command,
-    IN  PVOID       Argument
+    _In_ ULONG  Command,
+    _In_ PVOID  Argument
     )
 {
-    LONG_PTR ret;
-    NTSTATUS Status;
+    LONG_PTR    ret;
+    NTSTATUS    Status;
 
     ret = Hypercall2(LONG_PTR, memory_op, Command, Argument);
     if (ret < 0) {
@@ -151,12 +151,12 @@ HvmTerminate()
 
 NTSTATUS
 HvmAddToPhysMap(
-    IN  PFN_NUMBER      Pfn,
-    IN  ULONG           Space,
-    IN  ULONG           Offset
+    _In_ PFN_NUMBER             Pfn,
+    _In_ ULONG                  Space,
+    _In_ ULONG                  Offset
     )
 {
-    struct xen_add_to_physmap xatp;
+    struct xen_add_to_physmap   xatp;
 
 #ifdef AMD64
     ASSERT3U(Pfn >> 32, ==, 0);
@@ -172,8 +172,8 @@ HvmAddToPhysMap(
 
 static FORCEINLINE ULONG_PTR
 HvmOp(
-    IN  ULONG   Command,
-    IN  PVOID   Argument
+    _In_ ULONG  Command,
+    _In_ PVOID  Argument
     )
 {
     return Hypercall2(ULONG_PTR, hvm_op, Command, Argument);
@@ -181,8 +181,8 @@ HvmOp(
 
 NTSTATUS
 HvmGetParameter(
-    IN  ULONG               Param,
-    OUT PULONGLONG          Value
+    _In_ ULONG              Param,
+    _Out_ PULONGLONG        Value
     )
 {
     struct xen_hvm_param    op;
@@ -217,8 +217,8 @@ fail1:
 
 NTSTATUS
 HvmSetParameter(
-    IN  ULONG               Param,
-    IN  ULONGLONG           Value
+    _In_ ULONG              Param,
+    _In_ ULONGLONG          Value
     )
 {
     struct xen_hvm_param    op;
@@ -245,13 +245,13 @@ fail1:
 
 NTSTATUS
 HvmGetMemoryType(
-    IN  PFN_NUMBER              Pfn,
-    OUT ULONG                   *Type
+    _In_ PFN_NUMBER             Pfn,
+    _Out_ ULONG                 *Type
     )
 {
     struct xen_hvm_get_mem_type op;
-    LONG_PTR                rc;
-    NTSTATUS                status;
+    LONG_PTR                    rc;
+    NTSTATUS                    status;
 
     RtlZeroMemory(&op, sizeof(struct xen_hvm_get_mem_type));
 
diff --git a/src/xencrsh/hvm.h b/src/xencrsh/hvm.h
index ceae249..b86ae16 100644
--- a/src/xencrsh/hvm.h
+++ b/src/xencrsh/hvm.h
@@ -43,27 +43,27 @@ HvmTerminate();
 
 NTSTATUS
 HvmAddToPhysMap(
-    IN  PFN_NUMBER      Pfn,
-    IN  ULONG           Space,
-    IN  ULONG           Offset
+    _In_ PFN_NUMBER Pfn,
+    _In_ ULONG      Space,
+    _In_ ULONG      Offset
     );
 
 NTSTATUS
 HvmGetParameter(
-    IN  ULONG           Param,
-    OUT PULONGLONG      Value
+    _In_ ULONG          Param,
+    _Out_ PULONGLONG    Value
     );
 
 NTSTATUS
 HvmSetParameter(
-    IN  ULONG           Param,
-    IN  ULONGLONG       Value
+    _In_ ULONG      Param,
+    _In_ ULONGLONG  Value
     );
 
 NTSTATUS
 HvmGetMemoryType(
-    IN  PFN_NUMBER      Pfn,
-    OUT ULONG           *Type
+    _In_ PFN_NUMBER Pfn,
+    _Out_ ULONG     *Type
     );
 
 #endif // _XENVBD_HVM_H
diff --git a/src/xencrsh/hypercall_stub.c b/src/xencrsh/hypercall_stub.c
index 5183f58..f804d26 100644
--- a/src/xencrsh/hypercall_stub.c
+++ b/src/xencrsh/hypercall_stub.c
@@ -91,14 +91,14 @@ static HYPERCALL_INSTRUCTION    HypercallInstruction
 
 static FORCEINLINE VOID
 __CpuId(
-    IN  ULONG   Leaf,
-    OUT PULONG  EAX OPTIONAL,
-    OUT PULONG  EBX OPTIONAL,
-    OUT PULONG  ECX OPTIONAL,
-    OUT PULONG  EDX OPTIONAL
+    _In_ ULONG          Leaf,
+    _Out_opt_ PULONG    EAX,
+    _Out_opt_ PULONG    EBX,
+    _Out_opt_ PULONG    ECX,
+    _Out_opt_ PULONG    EDX
     )
 {
-    int         Value[4] = {0};
+    int                 Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
diff --git a/src/xencrsh/log.c b/src/xencrsh/log.c
index 5d3fcc0..43d5b0b 100644
--- a/src/xencrsh/log.c
+++ b/src/xencrsh/log.c
@@ -40,7 +40,7 @@ static PVOID Port12 = ((PVOID)(ULONG_PTR)0x12);
 
 static DECLSPEC_NOINLINE VOID
 LogQemuPut(
-    IN  CHAR        Char
+    _In_ CHAR   Char
     )
 {
     WRITE_PORT_UCHAR(Port12, (UCHAR)Char);
@@ -48,10 +48,10 @@ LogQemuPut(
 
 static DECLSPEC_NOINLINE PCHAR
 LogFormatNumber(
-    IN  PCHAR       Buffer,
-    IN  ULONGLONG   Value,
-    IN  UCHAR       Base,
-    IN  BOOLEAN     UpperCase
+    _In_ PCHAR      Buffer,
+    _In_ ULONGLONG  Value,
+    _In_ UCHAR      Base,
+    _In_ BOOLEAN    UpperCase
     )
 {
     ULONGLONG       Next = Value / Base;
@@ -108,9 +108,9 @@ LogFormatNumber(
 
 static DECLSPEC_NOINLINE VOID
 LogVPrintf(
-    IN  VOID        (*Put)(CHAR),
-    IN  const CHAR  *Format,
-    IN  va_list     Arguments
+    _In_ VOID       (*Put)(CHAR),
+    _In_ const CHAR *Format,
+    _In_ va_list    Arguments
     )
 {
     CHAR            Character;
@@ -221,12 +221,12 @@ LogVPrintf(
 
 static DECLSPEC_NOINLINE VOID
 LogPrintf(
-    IN  VOID        (*Put)(CHAR),
-    IN  const CHAR  *Format,
+    _In_ VOID       (*Put)(CHAR),
+    _In_ const CHAR *Format,
     ...
     )
 {
-    va_list Args;
+    va_list         Args;
 
     va_start(Args, Format);
     LogVPrintf(Put, Format, Args);
@@ -246,11 +246,11 @@ __Mode()
 
 static FORCEINLINE VOID
 LogVDebug(
-    IN  ULONG       Level,
-    IN  const CHAR  *Module,
-    IN  const CHAR  *Function,
-    IN  const CHAR  *Format,
-    IN  va_list     Args
+    _In_ ULONG      Level,
+    _In_ const CHAR *Module,
+    _In_ const CHAR *Function,
+    _In_ const CHAR *Format,
+    _In_ va_list    Args
     )
 {
     static CHAR     Buffer[256];
@@ -276,9 +276,9 @@ LogVDebug(
 
 void
 __LogMessage(
-    IN  ULONG       Level,
-    IN  const char* Function,
-    IN  const char* Format,
+    _In_ ULONG      Level,
+    _In_ const char *Function,
+    _In_ const char *Format,
     ...
     )
 {
diff --git a/src/xencrsh/log.h b/src/xencrsh/log.h
index d638371..f2cc918 100644
--- a/src/xencrsh/log.h
+++ b/src/xencrsh/log.h
@@ -40,9 +40,9 @@
 
 extern void
 __LogMessage(
-    IN  ULONG       Level,
-    IN  const char* Func,
-    IN  const char* Format,
+    _In_ ULONG      Level,
+    _In_ const char *Func,
+    _In_ const char *Format,
     ...
     );
 
diff --git a/src/xencrsh/pdo.c b/src/xencrsh/pdo.c
index 0335205..14eca16 100644
--- a/src/xencrsh/pdo.c
+++ b/src/xencrsh/pdo.c
@@ -88,14 +88,14 @@ struct _XENVBD_PDO {
 //=============================================================================
 static FORCEINLINE PVOID
 __PdoAlloc(
-    IN  ULONG                   Size
+    _In_ ULONG  Size
     )
 {
     return AustereAllocate(Size);
 }
 static FORCEINLINE VOID
 __PdoFree(
-    IN  PVOID                   Buffer
+    _In_ PVOID  Buffer
     )
 {
     AustereFree(Buffer);
@@ -105,14 +105,14 @@ __PdoFree(
 // Creation/Deletion
 NTSTATUS
 PdoCreate(
-    IN  PXENVBD_FDO             Fdo,
-    IN  PCHAR                   DeviceId,
-    IN  ULONG                   TargetId,
-    OUT PXENVBD_PDO*            _Pdo
+    _In_ PXENVBD_FDO        Fdo,
+    _In_ PCHAR              DeviceId,
+    _In_ ULONG              TargetId,
+    _Outptr_ PXENVBD_PDO    *_Pdo
     )
 {
-    PXENVBD_PDO         Pdo;
-    NTSTATUS            Status;
+    PXENVBD_PDO             Pdo;
+    NTSTATUS                Status;
 
     Status = STATUS_INSUFFICIENT_RESOURCES;
     Pdo = __PdoAlloc(sizeof(XENVBD_PDO));
@@ -136,7 +136,7 @@ fail1:
 
 VOID
 PdoDestroy(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     LARGE_INTEGER       Timeout;
@@ -156,7 +156,7 @@ PdoDestroy(
 
 DECLSPEC_NOINLINE VOID
 PdoD3ToD0(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     LogTrace("Target[%d] =====> (Irql=%d)\n", Pdo->Frontend.TargetId, 
KeGetCurrentIrql());
@@ -169,7 +169,7 @@ PdoD3ToD0(
 
 DECLSPEC_NOINLINE VOID
 PdoD0ToD3(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     LogTrace("Target[%d] =====> (Irql=%d)\n", Pdo->Frontend.TargetId, 
KeGetCurrentIrql());
@@ -185,7 +185,7 @@ PdoD0ToD3(
 // Reference Counting
 VOID
 PdoReference(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     if (Pdo)
@@ -194,7 +194,7 @@ PdoReference(
 
 VOID
 PdoDereference(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     if (Pdo)
@@ -206,7 +206,7 @@ PdoDereference(
 
 ULONG
 PdoSectorSize(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     ASSERT3U(Pdo->Frontend.SectorSize, !=, 0);
@@ -217,11 +217,11 @@ PdoSectorSize(
 // REQUEST related
 static VOID
 __CleanupRequest(
-    IN  PXENVBD_REQUEST         Request,
-    IN  BOOLEAN                 CopyOut
+    _In_ PXENVBD_REQUEST    Request,
+    _In_ BOOLEAN            CopyOut
     )
 {
-    ULONG               Index;
+    ULONG                   Index;
 
     for (Index = 0; Index < Request->NrSegments; ++Index) {
         // ungrant request
@@ -250,11 +250,11 @@ __CleanupRequest(
 }
 static VOID
 __CleanupSrb(
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT      SrbExt = GetSrbExt(Srb);
-    ULONG               Index;
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
+    ULONG                       Index;
 
     for (Index = 0; Index < SrbExt->NumRequests; ++Index) {
         PXENVBD_REQUEST Request = &SrbExt->Requests[Index];
@@ -266,8 +266,8 @@ __CleanupSrb(
 // Preparing Requests
 static FORCEINLINE VOID
 __UpdateStats(
-    __in PXENVBD_PDO             Pdo,
-    __in UCHAR                   Operation
+    _In_ PXENVBD_PDO    Pdo,
+    _In_ UCHAR          Operation
     )
 {
     switch (Operation) {
@@ -284,8 +284,8 @@ __UpdateStats(
 }
 static FORCEINLINE ULONG
 __Min(
-    IN  ULONG                   Val1,
-    IN  ULONG                   Val2
+    _In_ ULONG  Val1,
+    _In_ ULONG  Val2
     )
 {
     if (Val1 < Val2)
@@ -296,10 +296,10 @@ __Min(
 extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID Buffer);
 static FORCEINLINE PFN_NUMBER
 VirtToPfn(
-    IN  PVOID                   VirtAddr
+    _In_ PVOID          VirtAddr
     )
 {
-    PHYSICAL_ADDRESS PhysAddr = MmGetPhysicalAddress(VirtAddr);
+    PHYSICAL_ADDRESS    PhysAddr = MmGetPhysicalAddress(VirtAddr);
     return (PFN_NUMBER)(PhysAddr.QuadPart >> PAGE_SHIFT);
 }
 static FORCEINLINE ULONG __SectorSize(
@@ -311,9 +311,9 @@ static FORCEINLINE ULONG __SectorSize(
 }
 static FORCEINLINE VOID
 __Operation(
-    IN  UCHAR                   CdbOp,
-    OUT PUCHAR                  RingOp,
-    OUT PBOOLEAN                ReadOnly
+    _In_ UCHAR      CdbOp,
+    _Out_ PUCHAR    RingOp,
+    _Out_ PBOOLEAN  ReadOnly
     )
 {
     switch (CdbOp) {
@@ -331,17 +331,17 @@ __Operation(
 }
 static FORCEINLINE ULONG
 __Offset(
-    IN  STOR_PHYSICAL_ADDRESS   PhysAddr
+    _In_ STOR_PHYSICAL_ADDRESS  PhysAddr
     )
 {
     return (ULONG)(PhysAddr.QuadPart & (PAGE_SIZE - 1));
 }
 static FORCEINLINE VOID
 __GetPhysAddr(
-    IN  PSTOR_SCATTER_GATHER_LIST   SGList,
-    IN OUT PXENVBD_SG_INDEX         SGIndex,
-    OUT PSTOR_PHYSICAL_ADDRESS      SGPhysAddr,
-    OUT PULONG                      SGPhysLen
+    _In_ PSTOR_SCATTER_GATHER_LIST  SGList,
+    _Inout_ PXENVBD_SG_INDEX        SGIndex,
+    _Out_ PSTOR_PHYSICAL_ADDRESS    SGPhysAddr,
+    _Out_ PULONG                    SGPhysLen
     )
 {
     PSTOR_SCATTER_GATHER_ELEMENT    SGElement;
@@ -366,9 +366,9 @@ __GetPhysAddr(
 }
 static FORCEINLINE BOOLEAN
 __PhysAddrIsAligned(
-    IN  STOR_PHYSICAL_ADDRESS   PhysAddr,
-    IN  ULONG                   Length,
-    IN  ULONG                   Alignment
+    _In_ STOR_PHYSICAL_ADDRESS  PhysAddr,
+    _In_ ULONG                  Length,
+    _In_ ULONG                  Alignment
     )
 {
     if ((PhysAddr.QuadPart & Alignment) || (Length & Alignment))
@@ -378,23 +378,23 @@ __PhysAddrIsAligned(
 }
 static FORCEINLINE PFN_NUMBER
 __Pfn(
-    IN  STOR_PHYSICAL_ADDRESS   PhysAddr
+    _In_ STOR_PHYSICAL_ADDRESS  PhysAddr
     )
 {
     return (PFN_NUMBER)(PhysAddr.QuadPart >> PAGE_SHIFT);
 }
 static NTSTATUS
 PrepareReadWrite(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    NTSTATUS        Status;
-    ULONG           SectorsDone;
-    UCHAR           Operation;
-    BOOLEAN         ReadOnly;
-    ULONG           Index1, Index2;
-    ULONG           SectorsNow;
+    NTSTATUS                    Status;
+    ULONG                       SectorsDone;
+    UCHAR                       Operation;
+    BOOLEAN                     ReadOnly;
+    ULONG                       Index1, Index2;
+    ULONG                       SectorsNow;
 
     PSTOR_SCATTER_GATHER_LIST   SGList;
     XENVBD_SG_INDEX             SGIndex;
@@ -557,13 +557,13 @@ done:
 }
 static VOID
 PrepareSyncCache(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT          SrbExt = GetSrbExt(Srb);
-    PXENVBD_REQUEST         Request;
-    UCHAR                   Operation;
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
+    PXENVBD_REQUEST             Request;
+    UCHAR                       Operation;
 
     if (Pdo->Frontend.FeatureBarrier) {
         Operation = BLKIF_OP_WRITE_BARRIER;
@@ -596,7 +596,7 @@ PrepareSyncCache(
 
 VOID
 PdoPrepareFresh(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO        Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
@@ -622,7 +622,7 @@ PdoPrepareFresh(
 
 VOID
 PdoSubmitPrepared(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     for (;;) {
@@ -654,7 +654,7 @@ PdoSubmitPrepared(
 
 VOID
 PdoCompleteShutdown(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO        Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
@@ -675,13 +675,13 @@ PdoCompleteShutdown(
 
 VOID
 PdoCompleteSubmittedRequest(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PXENVBD_REQUEST         Request,
-    IN  SHORT                   Status
+    _In_ PXENVBD_PDO        Pdo,
+    _In_ PXENVBD_REQUEST    Request,
+    _In_ SHORT              Status
     )
 {
-    PSCSI_REQUEST_BLOCK Srb = Request->Srb;
-    PXENVBD_SRBEXT      SrbExt = GetSrbExt(Srb);
+    PSCSI_REQUEST_BLOCK     Srb = Request->Srb;
+    PXENVBD_SRBEXT          SrbExt = GetSrbExt(Srb);
 
     if (Status != BLKIF_RSP_OKAY) {
         LogError("Request 0x%p was failed by the backend with %d\n", Request, 
Status);
@@ -766,11 +766,11 @@ __ValidateSectors(
 }
 static BOOLEAN
 PdoReadWrite(
-    IN  PXENVBD_PDO            Pdo,
-    IN  PSCSI_REQUEST_BLOCK    Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    NTSTATUS Status;
+    NTSTATUS                    Status;
 
     if (!Pdo->Frontend.Connected) {
         LogTrace("Target[%d] : Not Ready, fail SRB\n", Pdo->Frontend.TargetId);
@@ -800,8 +800,8 @@ PdoReadWrite(
 }
 static FORCEINLINE BOOLEAN
 PdoSyncCache(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     if (!Pdo->Frontend.Connected) {
@@ -829,14 +829,14 @@ PdoSyncCache(
 #define MODE_CACHING_PAGE_LENGTH 20
 static FORCEINLINE VOID
 PdoModeSense(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )    
 {
-    PMODE_PARAMETER_HEADER  Header  = Srb->DataBuffer;
-    const UCHAR PageCode            = Cdb_PageCode(Srb);
-    ULONG LengthLeft                = Cdb_AllocationLength(Srb);
-    PVOID CurrentPage               = Srb->DataBuffer;
+    PMODE_PARAMETER_HEADER      Header = Srb->DataBuffer;
+    const UCHAR                 PageCode = Cdb_PageCode(Srb);
+    ULONG                       LengthLeft = Cdb_AllocationLength(Srb);
+    PVOID                       CurrentPage = Srb->DataBuffer;
 
     UNREFERENCED_PARAMETER(Pdo);
 
@@ -934,11 +934,11 @@ PdoModeSense(
 }
 static FORCEINLINE VOID
 PdoRequestSense(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PSENSE_DATA         Sense = Srb->DataBuffer;
+    PSENSE_DATA                 Sense = Srb->DataBuffer;
 
     UNREFERENCED_PARAMETER(Pdo);
 
@@ -954,14 +954,14 @@ PdoRequestSense(
 }
 static FORCEINLINE VOID
 PdoReportLuns(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    ULONG           Length;
-    ULONG           Offset;
-    ULONG           AllocLength = Cdb_AllocationLength(Srb);
-    PUCHAR          Buffer = Srb->DataBuffer;
+    ULONG                       Length;
+    ULONG                       Offset;
+    ULONG                       AllocLength = Cdb_AllocationLength(Srb);
+    PUCHAR                      Buffer = Srb->DataBuffer;
 
     UNREFERENCED_PARAMETER(Pdo);
 
@@ -989,15 +989,15 @@ PdoReportLuns(
 }
 static FORCEINLINE VOID
 PdoReadCapacity(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_FRONTEND        Frontend = &Pdo->Frontend;
-    PREAD_CAPACITY_DATA     Capacity = Srb->DataBuffer;
-    ULONG64                 SectorCount;
-    ULONG                   SectorSize;
-    ULONG                   LastBlock;
+    PXENVBD_FRONTEND            Frontend = &Pdo->Frontend;
+    PREAD_CAPACITY_DATA         Capacity = Srb->DataBuffer;
+    ULONG64                     SectorCount;
+    ULONG                       SectorSize;
+    ULONG                       LastBlock;
 
     SectorCount = Frontend->BlkifSectorCount >> Frontend->SectorShift;
     SectorSize = Frontend->SectorSize;
@@ -1016,14 +1016,14 @@ PdoReadCapacity(
 }
 static FORCEINLINE VOID
 PdoReadCapacity16(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_FRONTEND        Frontend = &Pdo->Frontend;
-    PREAD_CAPACITY_DATA_EX  Capacity = Srb->DataBuffer;
-    ULONG64                 SectorCount;
-    ULONG                   SectorSize;
+    PXENVBD_FRONTEND            Frontend = &Pdo->Frontend;
+    PREAD_CAPACITY_DATA_EX      Capacity = Srb->DataBuffer;
+    ULONG64                     SectorCount;
+    ULONG                       SectorSize;
 
     SectorCount = Frontend->BlkifSectorCount >> Frontend->SectorShift;
     SectorSize = Frontend->SectorSize;
@@ -1040,7 +1040,7 @@ PdoReadCapacity16(
 // StorPort Methods
 static FORCEINLINE VOID
 __DisplayStats(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     LogVerbose("Target[%d] : BLKIF_OP_'s Reads %d / Writes %d / Others %d\n",
@@ -1050,10 +1050,10 @@ __DisplayStats(
 }
 static VOID
 __AbortSrbQueue(
-    IN  PSRB_QUEUE              Queue,
-    IN  PXENVBD_PDO             Pdo,
-    IN  BOOLEAN                 Free,
-    IN  PCHAR                   Name
+    _In_ PSRB_QUEUE     Queue,
+    _In_ PXENVBD_PDO    Pdo,
+    _In_ BOOLEAN        Free,
+    _In_ PCHAR          Name
     )
 {
     PSCSI_REQUEST_BLOCK Srb;
@@ -1069,11 +1069,11 @@ __AbortSrbQueue(
 }
 static BOOLEAN
 PdoExecuteScsi(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    const UCHAR Operation = Cdb_OperationEx(Srb);
+    const UCHAR                 Operation = Cdb_OperationEx(Srb);
     // idea: check pdo state here. still push to freshsrbs
     //LogVerbose("Target[%d] ====> %02x:%s\n", Pdo->Frontend.TargetId, 
Operation, Cdb_OperationName(Operation));
     switch (Operation) {
@@ -1132,8 +1132,8 @@ PdoExecuteScsi(
 }
 static FORCEINLINE VOID
 PdoQueueShutdown(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     LogVerbose("Target[%d] : shutdown\n", Pdo->Frontend.TargetId);
@@ -1143,7 +1143,7 @@ PdoQueueShutdown(
 
 VOID
 PdoReset(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO        Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
@@ -1180,8 +1180,8 @@ PdoReset(
 }
 static FORCEINLINE BOOLEAN
 ValidateSrbForPdo(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     if (Srb->PathId != 0) {
@@ -1205,8 +1205,8 @@ ValidateSrbForPdo(
 }
 BOOLEAN
 PdoStartIo(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     if (!ValidateSrbForPdo(Pdo, Srb))
@@ -1240,7 +1240,7 @@ PdoStartIo(
 
 VOID
 PdoAbortAllSrbs(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     __AbortSrbQueue(&Pdo->FreshSrbs, Pdo, FALSE, "Fresh");
@@ -1250,7 +1250,7 @@ PdoAbortAllSrbs(
 
 VOID
 PdoEvtchnInterruptHandler(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     )
 {
     FrontendEvtchnCallback(&Pdo->Frontend);
diff --git a/src/xencrsh/pdo.h b/src/xencrsh/pdo.h
index 0e2f4e2..03fc84f 100644
--- a/src/xencrsh/pdo.h
+++ b/src/xencrsh/pdo.h
@@ -45,87 +45,87 @@ typedef struct _XENVBD_PDO XENVBD_PDO, *PXENVBD_PDO;
 // Creation/Deletion
 extern NTSTATUS
 PdoCreate(
-    IN  PXENVBD_FDO             Fdo,
-    IN  PCHAR                   DeviceId,
-    IN  ULONG                   TargetId,
-    OUT PXENVBD_PDO*            _Pdo
+    _In_ PXENVBD_FDO        Fdo,
+    _In_ PCHAR              DeviceId,
+    _In_ ULONG              TargetId,
+    _Outptr_ PXENVBD_PDO    *_Pdo
     );
 
 extern VOID
 PdoDestroy(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoD3ToD0(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoD0ToD3(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 // Reference Counting
 extern VOID
 PdoReference(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoDereference(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 // Query Methods
 extern ULONG
 PdoSectorSize(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 // Queue-Related
 extern VOID
 PdoPrepareFresh(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoSubmitPrepared(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoCompleteShutdown(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoCompleteSubmittedRequest(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PXENVBD_REQUEST         Request,
-    IN  SHORT                   Status
+    _In_ PXENVBD_PDO        Pdo,
+    _In_ PXENVBD_REQUEST    Request,
+    _In_ SHORT              Status
     );
 
 // StorPort Methods
 extern VOID
 PdoReset(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern BOOLEAN
 PdoStartIo(
-    IN  PXENVBD_PDO             Pdo,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_PDO            Pdo,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 extern VOID
 PdoAbortAllSrbs(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 extern VOID
 PdoEvtchnInterruptHandler(
-    IN  PXENVBD_PDO             Pdo
+    _In_ PXENVBD_PDO    Pdo
     );
 
 #endif // _XENVBD_PDO_H
diff --git a/src/xencrsh/pdoinquiry.c b/src/xencrsh/pdoinquiry.c
index 3a44ee3..7d4c5d6 100644
--- a/src/xencrsh/pdoinquiry.c
+++ b/src/xencrsh/pdoinquiry.c
@@ -62,11 +62,11 @@ typedef struct _XENVBD_INQUIRY {
 
 static VOID
 __DefaultInquiry(
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    const UCHAR Evpd = Cdb_EVPD(Srb);
-    const UCHAR PageCode = Cdb_PageCode(Srb);
+    const UCHAR                 Evpd = Cdb_EVPD(Srb);
+    const UCHAR                 PageCode = Cdb_PageCode(Srb);
 
     if (Evpd == 0)
     {
@@ -133,13 +133,13 @@ __DefaultInquiry(
 
 static FORCEINLINE PXENVBD_PAGE
 __FindPage(
-    IN  PXENVBD_INQUIRY Inquiry,
-    IN  UCHAR           Evpd,
-    IN  UCHAR           PageCode
+    _In_ PXENVBD_INQUIRY    Inquiry,
+    _In_ UCHAR              Evpd,
+    _In_ UCHAR              PageCode
     )
 {
-    PLIST_ENTRY     Entry;
-    PXENVBD_PAGE    Page = NULL;
+    PLIST_ENTRY             Entry;
+    PXENVBD_PAGE            Page = NULL;
 
     if (Evpd == 0) {
         if (PageCode == 0) {
@@ -169,11 +169,11 @@ __FindPage(
 
 static VOID
 __FreeInquiryData(
-    IN  PXENVBD_INQUIRY     Inquiry
+    _In_ PXENVBD_INQUIRY    Inquiry
     )
 {
-    PLIST_ENTRY     Entry;
-    PXENVBD_PAGE    Page;
+    PLIST_ENTRY             Entry;
+    PXENVBD_PAGE            Page;
 
     // free standard page
     if (Inquiry->StandardPage.Data) {
@@ -200,10 +200,10 @@ __FreeInquiryData(
 
 static FORCEINLINE UCHAR
 __PageCode(
-    IN  PCHAR   PageCode
+    _In_ PCHAR  PageCode
     )
 {
-    ULONG Ret;
+    ULONG       Ret;
     if (PageCode[0] == '0' && PageCode[1] == 'x')
         Ret = strtoul(PageCode + 2, NULL, 16);
     else
@@ -213,7 +213,7 @@ __PageCode(
 }
 static FORCEINLINE UCHAR
 __DecodeChar(
-    IN  CHAR    Char
+    _In_ CHAR   Char
     )
 {
     if (Char >= 'A' && Char <= 'Z')
@@ -233,12 +233,12 @@ __DecodeChar(
 }
 static FORCEINLINE UCHAR
 __Decode(
-    IN  PUCHAR  Dest,
-    IN  PCHAR   Src,
-    IN  ULONG   RemainingChars
+    _In_ PUCHAR Dest,
+    _In_ PCHAR  Src,
+    _In_ ULONG  RemainingChars
     )
 {
-    UCHAR   Values[4]; 
+    UCHAR       Values[4];
 
     if (RemainingChars < 4)
         return 0xFF;
@@ -267,10 +267,10 @@ __Decode(
 }
 static NTSTATUS
 __DecodeBase64(
-    IN  PCHAR   Base64,
-    IN  ULONG   Base64Length,
-    OUT PVOID   *_Buffer,
-    OUT PULONG  BufferLength
+    _In_ PCHAR      Base64,
+    _In_ ULONG      Base64Length,
+    _Outptr_ PVOID  *_Buffer,
+    _Out_ PULONG    BufferLength
     )
 {
     // convert Base64(4chars) into Buffer(3bytes)
@@ -308,17 +308,17 @@ fail1:
 }
 static NTSTATUS
 __ReadPage(
-    IN  PXENVBD_INQUIRY         Inquiry,
-    IN  PCHAR                   BasePath,
-    IN  PCHAR                   PageCode
+    _In_ PXENVBD_INQUIRY    Inquiry,
+    _In_ PCHAR              BasePath,
+    _In_ PCHAR              PageCode
     )
 {
-    NTSTATUS        Status;
-    PCHAR           Base64;
-    ULONG           Base64Length;
-    PVOID           Buffer;
-    ULONG           BufferLength;
-    PXENVBD_PAGE    Page;
+    NTSTATUS                Status;
+    PCHAR                   Base64;
+    ULONG                   Base64Length;
+    PVOID                   Buffer;
+    ULONG                   BufferLength;
+    PXENVBD_PAGE            Page;
 
     Status = StoreRead(NULL, BasePath, PageCode, &Base64);
     if (!NT_SUCCESS(Status)) {
@@ -373,11 +373,11 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage83(
-    IN  PXENVBD_INQUIRY         Inquiry
+    _In_ PXENVBD_INQUIRY    Inquiry
     )
 {
-    PXENVBD_PAGE    Page;
-    PUCHAR          Data;
+    PXENVBD_PAGE            Page;
+    PUCHAR                  Data;
 
     Page = (PXENVBD_PAGE)AustereAllocate(sizeof(XENVBD_PAGE));
     if (!Page) {
@@ -408,7 +408,7 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage80(
-    IN  PXENVBD_INQUIRY         Inquiry
+    _In_ PXENVBD_INQUIRY    Inquiry
     )
 {
     PXENVBD_PAGE            Page;
@@ -445,10 +445,10 @@ fail1:
 }
 static FORCEINLINE NTSTATUS
 __GeneratePageStd(
-    IN  PXENVBD_INQUIRY         Inquiry
+    _In_ PXENVBD_INQUIRY    Inquiry
     )
 {
-    INQUIRYDATA     *Data;
+    INQUIRYDATA             *Data;
 
     Inquiry->StandardPage.PageCode = 0;
     Inquiry->StandardPage.Length = sizeof(INQUIRYDATA);
@@ -478,14 +478,14 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage00(
-    IN  PXENVBD_INQUIRY         Inquiry
+    _In_ PXENVBD_INQUIRY    Inquiry
     )
 {
-    PUCHAR          Buffer;
-    ULONG           PageNum;
-    PLIST_ENTRY     Entry;
-    PXENVBD_PAGE    Page;
-    ULONG           NumPages = 0;
+    PUCHAR                  Buffer;
+    ULONG                   PageNum;
+    PLIST_ENTRY             Entry;
+    PXENVBD_PAGE            Page;
+    ULONG                   NumPages = 0;
     
     for (Entry = Inquiry->ListHead.Flink; Entry != &Inquiry->ListHead; Entry = 
Entry->Flink) {
         ++NumPages;
@@ -529,8 +529,8 @@ fail1:
 }
 static NTSTATUS
 __ReadInquiry(
-    IN  PCHAR                   Path,
-    OUT PVOID*                  _Inquiry
+    _In_ PCHAR      Path,
+    _Outptr_ PVOID  *_Inquiry
     )
 {
     NTSTATUS        Status;
@@ -620,19 +620,19 @@ fail1:
 
 static FORCEINLINE ULONG
 __Min(
-    IN  ULONG   A,
-    IN  ULONG   B
+    _In_ ULONG  A,
+    _In_ ULONG  B
     )
 {
     return A < B ? A : B;
 }
 static FORCEINLINE VOID
 __DumpBytes(
-    IN  PUCHAR  Bytes,
-    IN  ULONG   Length
+    _In_ PUCHAR Bytes,
+    _In_ ULONG  Length
     )
 {
-    ULONG ThisTime, Index;
+    ULONG       ThisTime, Index;
 
     for (Index = 0; Index < Length; ) {
         ThisTime = __Min(Length - Index, 8);
@@ -677,7 +677,7 @@ __DumpBytes(
 }
 static FORCEINLINE VOID
 __DumpPage(
-    IN  PXENVBD_PAGE    Page
+    _In_ PXENVBD_PAGE   Page
     )
 {
     LogTrace("PAGE_CODE : %02x\n", Page->PageCode);
@@ -686,7 +686,7 @@ __DumpPage(
 }
 static FORCEINLINE VOID
 __DumpPageStandard(
-    IN  PXENVBD_PAGE    Page
+    _In_ PXENVBD_PAGE   Page
     )
 {
     LogTrace("PAGE_CODE : %02x STANDARD\n", Page->PageCode);
@@ -695,7 +695,7 @@ __DumpPageStandard(
 }
 static FORCEINLINE VOID
 __DumpInquiry(
-    IN  PVOID           _Inquiry
+    _In_ PVOID      _Inquiry
     )
 {
     PLIST_ENTRY     Entry;
@@ -713,11 +713,11 @@ __DumpInquiry(
 
 VOID
 PdoReadInquiryData(
-    IN  PXENVBD_FRONTEND        Frontend,
-    OUT PVOID*                  _Inquiry
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Outptr_ PVOID          *_Inquiry
     )
 {
-    NTSTATUS        Status;
+    NTSTATUS                Status;
 
     Status = __ReadInquiry(Frontend->BackendPath, _Inquiry);
     if (!NT_SUCCESS(Status))
@@ -732,7 +732,7 @@ fail:
 
 VOID
 PdoFreeInquiryData(
-    IN  PVOID                   Inquiry
+    _In_ PVOID  Inquiry
     )
 {
     __FreeInquiryData((PXENVBD_INQUIRY)Inquiry);
@@ -740,14 +740,14 @@ PdoFreeInquiryData(
 
 VOID
 PdoInquiry(
-    IN  PVOID                   Inquiry,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PVOID                  Inquiry,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    ULONG           Length;
-    PXENVBD_PAGE    Page;
-    const UCHAR     Evpd = Cdb_EVPD(Srb);
-    const UCHAR     PageCode = Cdb_PageCode(Srb);
+    ULONG                       Length;
+    PXENVBD_PAGE                Page;
+    const UCHAR                 Evpd = Cdb_EVPD(Srb);
+    const UCHAR                 PageCode = Cdb_PageCode(Srb);
 
     if (Inquiry) {
         Page = __FindPage((PXENVBD_INQUIRY)Inquiry, Evpd, PageCode);
diff --git a/src/xencrsh/pdoinquiry.h b/src/xencrsh/pdoinquiry.h
index 0b25d31..2f3e89e 100644
--- a/src/xencrsh/pdoinquiry.h
+++ b/src/xencrsh/pdoinquiry.h
@@ -41,19 +41,19 @@
 
 extern VOID
 PdoReadInquiryData(
-    IN  PXENVBD_FRONTEND        Frontend,
-    OUT PVOID*                  _Inquiry
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Outptr_ PVOID          *_Inquiry
     );
 
 extern VOID
 PdoFreeInquiryData(
-    IN  PVOID                   Inquiry
+    _In_ PVOID  Inquiry
     );
 
 extern VOID
 PdoInquiry(
-    IN  PVOID                   Inquiry,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PVOID                  Inquiry,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 #endif // _XENVBD_PDO_INQUIRY_H
diff --git a/src/xencrsh/queue.c b/src/xencrsh/queue.c
index a1882fe..4bd3339 100644
--- a/src/xencrsh/queue.c
+++ b/src/xencrsh/queue.c
@@ -38,7 +38,7 @@
 
 static FORCEINLINE BOOLEAN
 __QueueValid(
-    IN  PSRB_QUEUE          Queue
+    _In_ PSRB_QUEUE Queue
     )
 {
     if (( Queue->Count == 0 && (Queue->Head != NULL || Queue->Tail != NULL) ) 
||
@@ -51,11 +51,11 @@ __QueueValid(
 }
 static VOID
 __QueueRemoveLocked(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT  SrbExt = GetSrbExt(Srb);
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
 
     ASSERT3P(SrbExt->QueueHead, ==, Queue);
 
@@ -86,11 +86,11 @@ __QueueRemoveLocked(
 
 static FORCEINLINE VOID
 __QueueInsertHeadLocked(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT  SrbExt = GetSrbExt(Srb);
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
 
     ASSERT3P(SrbExt->QueueHead, ==, NULL);
 
@@ -117,11 +117,11 @@ __QueueInsertHeadLocked(
 
 static FORCEINLINE VOID
 __QueueInsertTailLocked(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT  SrbExt = GetSrbExt(Srb);
+    PXENVBD_SRBEXT              SrbExt = GetSrbExt(Srb);
 
     ASSERT3P(SrbExt->QueueHead, ==, NULL);
 
@@ -148,7 +148,7 @@ __QueueInsertTailLocked(
 
 PSCSI_REQUEST_BLOCK
 QueuePeek(
-    IN  PSRB_QUEUE          Queue
+    _In_ PSRB_QUEUE Queue
     )
 {
     ASSERT(__QueueValid(Queue));
@@ -157,7 +157,7 @@ QueuePeek(
 
 PSCSI_REQUEST_BLOCK
 QueuePop(
-    IN  PSRB_QUEUE          Queue
+    _In_ PSRB_QUEUE     Queue
     )
 {
     PSCSI_REQUEST_BLOCK Srb = NULL;
@@ -170,8 +170,8 @@ QueuePop(
 
 VOID
 QueueInsertHead(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     __QueueInsertHeadLocked(Queue, Srb);
@@ -179,8 +179,8 @@ QueueInsertHead(
 
 VOID
 QueueInsertTail(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     __QueueInsertTailLocked(Queue, Srb);
@@ -188,8 +188,8 @@ QueueInsertTail(
 
 VOID
 QueueRemove(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     __QueueRemoveLocked(Queue, Srb);
@@ -197,8 +197,8 @@ QueueRemove(
 
 VOID
 QueueDebugCallback(
-    IN  PSRB_QUEUE          Queue,
-    IN  PCHAR               Name
+    _In_ PSRB_QUEUE Queue,
+    _In_ PCHAR      Name
     )
 {
     LogTrace("=====> %s\n", Name);
diff --git a/src/xencrsh/queue.h b/src/xencrsh/queue.h
index c727936..c53b3e6 100644
--- a/src/xencrsh/queue.h
+++ b/src/xencrsh/queue.h
@@ -50,36 +50,36 @@ typedef struct _SRB_QUEUE {
 
 PSCSI_REQUEST_BLOCK
 QueuePeek(
-    IN  PSRB_QUEUE          Queue
+    _In_ PSRB_QUEUE Queue
     );
 
 PSCSI_REQUEST_BLOCK
 QueuePop(
-    IN  PSRB_QUEUE          Queue
+    _In_ PSRB_QUEUE Queue
     );
 
 VOID
 QueueInsertHead(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueInsertTail(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueRemove(
-    IN  PSRB_QUEUE          Queue,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PSRB_QUEUE             Queue,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueDebugCallback(
-    IN  PSRB_QUEUE          Queue,
-    IN  PCHAR               Name
+    _In_ PSRB_QUEUE Queue,
+    _In_ PCHAR      Name
     );
 
 #endif // _XENVBD_QUEUE_H
diff --git a/src/xencrsh/srbext.h b/src/xencrsh/srbext.h
index 2cc287e..6599ce4 100644
--- a/src/xencrsh/srbext.h
+++ b/src/xencrsh/srbext.h
@@ -52,7 +52,7 @@ typedef struct _XENVBD_SRBEXT {
 
 FORCEINLINE PXENVBD_SRBEXT
 GetSrbExt(
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     return Srb->SrbExtension;
diff --git a/src/xencrsh/store.c b/src/xencrsh/store.c
index f118646..fc945a6 100644
--- a/src/xencrsh/store.c
+++ b/src/xencrsh/store.c
@@ -121,15 +121,15 @@ C_ASSERT(sizeof (struct xenstore_domain_interface) <= 
PAGE_SIZE);
 
 static VOID
 StorePrepareRequest(
-    OUT PSTORE_REQUEST              Request,
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  enum xsd_sockmsg_type       Type,
+    _Out_ PSTORE_REQUEST                Request,
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_ enum xsd_sockmsg_type          Type,
     IN  ...
     )
 {
-    static LONG                     Sequence;
-    PSTORE_SEGMENT                  Segment;
-    va_list                         Arguments;
+    static LONG                         Sequence;
+    PSTORE_SEGMENT                      Segment;
+    va_list                             Arguments;
 
     ASSERT(IsZeroMemory(Request, sizeof (STORE_REQUEST)));
 
@@ -176,8 +176,8 @@ StorePrepareRequest(
 
 static FORCEINLINE ULONG
 __StoreCopyToRing(
-    IN  PCHAR                           Data,
-    IN  ULONG                           Length
+    _In_ PCHAR                          Data,
+    _In_ ULONG                          Length
     )
 {
     struct xenstore_domain_interface    *Shared;
@@ -226,8 +226,8 @@ __StoreCopyToRing(
 
 static FORCEINLINE NTSTATUS
 StoreSendSegment(
-    IN OUT  PSTORE_SEGMENT          Segment,
-    IN OUT  PULONG                  Written
+    _Inout_ PSTORE_SEGMENT          Segment,
+    _Inout_ PULONG                  Written
     )
 {
     ULONG                           Copied;
@@ -244,7 +244,7 @@ StoreSendSegment(
 
 static VOID
 StoreSendRequests(
-    IN OUT  PULONG                  Written
+    _Inout_ PULONG  Written
     )
 {
     if (IsListEmpty(&StoreContext.SubmittedList))
@@ -285,8 +285,8 @@ StoreSendRequests(
 
 static FORCEINLINE ULONG
 __StoreCopyFromRing(
-    IN  PCHAR                           Data,
-    IN  ULONG                           Length
+    _In_ PCHAR                          Data,
+    _In_ ULONG                          Length
     )
 {
     struct xenstore_domain_interface    *Shared;
@@ -335,8 +335,8 @@ __StoreCopyFromRing(
 
 static NTSTATUS
 StoreReceiveSegment(
-    IN OUT  PSTORE_SEGMENT          Segment,
-    IN OUT  PULONG                  Read
+    _Inout_ PSTORE_SEGMENT          Segment,
+    _Inout_ PULONG                  Read
     )
 {
     ULONG                           Copied;
@@ -386,7 +386,7 @@ __StoreVerifyHeader(
 
 static FORCEINLINE NTSTATUS
 StoreReceiveResponse(
-    IN OUT  PULONG                  Read
+    _Inout_ PULONG                  Read
     )
 {
     PSTORE_RESPONSE                 Response = &StoreContext.Response;
@@ -421,7 +421,7 @@ done:
 
 static FORCEINLINE PSTORE_REQUEST
 StoreFindRequest(
-    IN  uint32_t                req_id
+    _In_ uint32_t               req_id
     )
 {
     PLIST_ENTRY                 ListEntry;
@@ -445,10 +445,10 @@ StoreFindRequest(
 
 static FORCEINLINE VOID
 __StoreResetResponse(
-    OUT PSTORE_RESPONSE  Response
+    _Out_ PSTORE_RESPONSE   Response
     )
 {
-    PSTORE_SEGMENT       Segment;
+    PSTORE_SEGMENT          Segment;
 
     RtlZeroMemory(Response, sizeof (STORE_RESPONSE));
 
@@ -511,7 +511,7 @@ StorePoll()
 
 static PSTORE_RESPONSE
 StoreSubmitRequest(
-    IN  PSTORE_REQUEST          Request
+    _In_ PSTORE_REQUEST         Request
     )
 {
     PSTORE_RESPONSE             Response;
@@ -537,10 +537,10 @@ StoreSubmitRequest(
 
 static FORCEINLINE NTSTATUS
 __StoreCheckResponse(
-    IN  PSTORE_RESPONSE Response
+    _In_ PSTORE_RESPONSE    Response
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     status = STATUS_UNSUCCESSFUL;
     if (Response->Header.type == XS_ERROR) {
@@ -571,7 +571,7 @@ fail1:
 
 static FORCEINLINE ULONG
 __StorePayloadLength(
-    IN  PSTORE_RESPONSE Response
+    _In_ PSTORE_RESPONSE    Response
     )
 {
     return Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Length;
@@ -579,7 +579,7 @@ __StorePayloadLength(
 
 static FORCEINLINE PCHAR
 __StorePayloadData(
-    IN  PSTORE_RESPONSE Response
+    _In_ PSTORE_RESPONSE    Response
     )
 {
     return Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Data;
@@ -587,10 +587,10 @@ __StorePayloadData(
 
 static FORCEINLINE VOID
 StoreFreeResponse(
-    IN  PSTORE_RESPONSE Response
+    _In_ PSTORE_RESPONSE    Response
     )
 {
-    PSTORE_SEGMENT      Segment;
+    PSTORE_SEGMENT          Segment;
 
     Segment = &Response->Segment[RESPONSE_PAYLOAD_SEGMENT];
 
@@ -602,18 +602,18 @@ StoreFreeResponse(
 
 NTSTATUS
 StoreRead(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node,
-    OUT PCHAR                       *Value
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node,
+    _Outptr_ PCHAR                      *Value
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    ULONG                           Length;
-    PCHAR                           Data;
-    PCHAR                           Buffer;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    ULONG                               Length;
+    PCHAR                               Data;
+    PCHAR                               Buffer;
+    NTSTATUS                            status;
 
     LogTrace("===> %p %s %s\n", Transaction, Prefix ? Prefix : "NULL", Node);
 
@@ -675,15 +675,15 @@ fail1:
 
 NTSTATUS
 StoreWrite(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node,
-    IN  PCHAR                       Value
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node,
+    _In_ PCHAR                          Value
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    NTSTATUS                            status;
 
     RtlZeroMemory(&Request, sizeof (STORE_REQUEST));
 
@@ -729,16 +729,16 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 StoreVPrintf(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node,
-    IN  const CHAR                  *Format,
-    IN  va_list                     Arguments
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node,
+    _In_ const CHAR                     *Format,
+    _In_ va_list                        Arguments
     )
 {
-    PCHAR                           Buffer;
-    ULONG                           Length;
-    NTSTATUS                        status;
+    PCHAR                               Buffer;
+    ULONG                               Length;
+    NTSTATUS                            status;
 
     Length = 32;
     for (;;) {
@@ -794,15 +794,15 @@ fail1:
 
 NTSTATUS
 StorePrintf(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node,
-    IN  const CHAR                  *Format,
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node,
+    _In_ const CHAR                     *Format,
     ...
     )
 {
-    va_list                         Arguments;
-    NTSTATUS                        status;
+    va_list                             Arguments;
+    NTSTATUS                            status;
 
     va_start(Arguments, Format);
     status = StoreVPrintf(Transaction,
@@ -817,14 +817,14 @@ StorePrintf(
 
 NTSTATUS
 StoreRemove(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    NTSTATUS                            status;
 
     LogTrace("===> %p %s %s\n", Transaction, Prefix ? Prefix : "NULL", Node);
 
@@ -871,18 +871,18 @@ fail1:
 
 NTSTATUS
 StoreDirectory(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,
-    IN  PCHAR                       Node,
-    OUT PCHAR                       *Value
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_opt_ PCHAR                      Prefix,
+    _In_ PCHAR                          Node,
+    _Outptr_ PCHAR                      *Value
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    ULONG                           Length;
-    PCHAR                           Data;
-    PCHAR                           Buffer;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    ULONG                               Length;
+    PCHAR                               Data;
+    PCHAR                               Buffer;
+    NTSTATUS                            status;
 
     LogTrace("===> %p %s %s\n", Transaction, Prefix ? Prefix : "NULL", Node);
 
@@ -944,12 +944,12 @@ fail1:
 
 NTSTATUS
 StoreTransactionStart(
-    OUT PXENBUS_STORE_TRANSACTION   *Transaction
+    _Outptr_ PXENBUS_STORE_TRANSACTION  *Transaction
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    NTSTATUS                            status;
 
     LogTrace("===>\n");
 
@@ -999,8 +999,8 @@ fail1:
 
 NTSTATUS
 StoreTransactionEnd(
-    IN  PXENBUS_STORE_TRANSACTION   Transaction,
-    IN  BOOLEAN                     Commit
+    _In_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_ BOOLEAN                    Commit
     )
 {
     STORE_REQUEST                   Request;
@@ -1047,8 +1047,8 @@ extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID  
BaseAddress);
 
 static FORCEINLINE int
 MemoryOp(
-    IN  ULONG   Command,
-    IN  PVOID   Argument
+    _In_ ULONG  Command,
+    _In_ PVOID  Argument
     )
 {
     return Hypercall2(int, memory_op, Command, Argument);
@@ -1056,8 +1056,8 @@ MemoryOp(
 
 static FORCEINLINE PVOID
 __Round(
-    IN  PVOID               Buffer,
-    IN  ULONG               RoundTo
+    _In_ PVOID  Buffer,
+    _In_ ULONG  RoundTo
     )
 {
     // round buffer to (normally PAGE_SIZE) boundary
diff --git a/src/xencrsh/store.h b/src/xencrsh/store.h
index 58ebef5..fa9b2ec 100644
--- a/src/xencrsh/store.h
+++ b/src/xencrsh/store.h
@@ -43,53 +43,53 @@ StoreTerminate();
 
 NTSTATUS
 StoreRead(
-    IN  PVOID                       Transaction OPTIONAL,
-    IN  PCHAR                       Prefix OPTIONAL,     
-    IN  PCHAR                       Node,                
-    OUT PCHAR                       *Value               
+    _In_opt_ PVOID  Transaction,
+    _In_opt_ PCHAR  Prefix,
+    _In_ PCHAR      Node,
+    _Outptr_ PCHAR  *Value
     );
 
 NTSTATUS
 StoreWrite(
-    IN  PVOID                       Transaction OPTIONAL, 
-    IN  PCHAR                       Prefix OPTIONAL,      
-    IN  PCHAR                       Node,                 
-    IN  PCHAR                       Value
+    _In_opt_ PVOID  Transaction,
+    _In_opt_ PCHAR  Prefix,
+    _In_ PCHAR      Node,
+    _In_ PCHAR      Value
     );
 
 NTSTATUS
 StorePrintf(
-    IN  PVOID                       Transaction OPTIONAL, 
-    IN  PCHAR                       Prefix OPTIONAL,      
-    IN  PCHAR                       Node,                 
-    IN  const CHAR                  *Format,              
+    _In_opt_ PVOID  Transaction,
+    _In_opt_ PCHAR  Prefix,
+    _In_ PCHAR      Node,
+    _In_ const CHAR *Format,
     ...                                                   
     );
 
 NTSTATUS
 StoreRemove(                                                     
-    IN  PVOID                       Transaction OPTIONAL, 
-    IN  PCHAR                       Prefix OPTIONAL,      
-    IN  PCHAR                       Node                  
+    _In_opt_ PVOID  Transaction,
+    _In_opt_ PCHAR  Prefix,
+    _In_ PCHAR      Node
     );
 
 NTSTATUS
 StoreDirectory(                                                     
-    IN  PVOID                       Transaction OPTIONAL, 
-    IN  PCHAR                       Prefix OPTIONAL,      
-    IN  PCHAR                       Node,                 
-    OUT PCHAR                       *Value                
+    _In_opt_ PVOID  Transaction,
+    _In_opt_ PCHAR  Prefix,
+    _In_ PCHAR      Node,
+    _Outptr_ PCHAR  *Value
     );
 
 NTSTATUS
 StoreTransactionStart(                                                     
-    OUT PVOID                       *Transaction          
+    _Outptr_ PVOID  *Transaction
     );
 
 NTSTATUS
 StoreTransactionEnd(                                                     
-    IN  PVOID                       Transaction,          
-    IN  BOOLEAN                     Commit                
+    _In_ PVOID      Transaction,
+    _In_ BOOLEAN    Commit
     );
 
 #endif // _XENVBD_STORE_H
diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c
index a0be841..360cf50 100644
--- a/src/xenvbd/adapter.c
+++ b/src/xenvbd/adapter.c
@@ -100,7 +100,7 @@ struct _XENVBD_ADAPTER {
 
 static FORCEINLINE PVOID
 __AdapterAllocate(
-    IN  ULONG   Size
+    _In_ ULONG  Size
     )
 {
     return __AllocatePoolWithTag(NonPagedPool,
@@ -110,7 +110,7 @@ __AdapterAllocate(
 
 static FORCEINLINE VOID
 __AdapterFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, ADAPTER_POOL_TAG);
@@ -118,7 +118,7 @@ __AdapterFree(
 
 static FORCEINLINE PANSI_STRING
 __AdapterMultiSzToAnsi(
-    IN  PCHAR       Buffer
+    _In_ PCHAR      Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -181,7 +181,7 @@ fail1:
 
 static FORCEINLINE PANSI_STRING
 __AdapterMultiSzToUpcaseAnsi(
-    IN  PCHAR       Buffer
+    _In_ PCHAR      Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -245,7 +245,7 @@ fail1:
 
 static FORCEINLINE VOID
 __AdapterFreeAnsi(
-    IN  PANSI_STRING    Ansi
+    _In_ PANSI_STRING   Ansi
     )
 {
     ULONG               Index;
@@ -258,8 +258,8 @@ __AdapterFreeAnsi(
 
 static FORCEINLINE BOOLEAN
 __AdapterSetDevicePowerState(
-    IN  PXENVBD_ADAPTER     Adapter,
-    IN  DEVICE_POWER_STATE  State
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ DEVICE_POWER_STATE State
     )
 {
     KIRQL                   Irql;
@@ -280,11 +280,11 @@ __AdapterSetDevicePowerState(
 
 static FORCEINLINE DEVICE_POWER_STATE
 __AdapterGetDevicePowerState(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    KIRQL               Irql;
-    DEVICE_POWER_STATE  State;
+    KIRQL                   Irql;
+    DEVICE_POWER_STATE      State;
 
     KeAcquireSpinLock(&Adapter->Lock, &Irql);
     State = Adapter->DevicePower;
@@ -295,12 +295,12 @@ __AdapterGetDevicePowerState(
 
 static FORCEINLINE PXENVBD_TARGET
 AdapterGetTarget(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  ULONG           TargetId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ ULONG              TargetId
     )
 {
-    PXENVBD_TARGET      Target;
-    KIRQL               Irql;
+    PXENVBD_TARGET          Target;
+    KIRQL                   Irql;
 
     ASSERT3U(TargetId, <, XENVBD_MAX_TARGETS);
 
@@ -313,8 +313,8 @@ AdapterGetTarget(
 
 static FORCEINLINE BOOLEAN
 __AdapterHiddenTarget(
-    IN  PXENVBD_ADAPTER     Adapter,
-    IN  PCHAR               DeviceId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PCHAR              DeviceId
     )
 {
     NTSTATUS                status;
@@ -380,12 +380,12 @@ ignore:
 
 BOOLEAN
 AdapterIsTargetEmulated(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  ULONG           TargetId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ ULONG              TargetId
     )
 {
-    BOOLEAN             Emulated;
-    NTSTATUS            status;
+    BOOLEAN                 Emulated;
+    NTSTATUS                status;
 
     // Only check targets that could be emulated
     if (TargetId > 3)
@@ -412,7 +412,7 @@ AdapterIsTargetEmulated(
 
 BOOLEAN
 AdapterBootEmulated(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
     return Adapter->BootEmulated;
@@ -420,10 +420,10 @@ AdapterBootEmulated(
 
 VOID
 AdapterRequestReboot(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     status = XENBUS_UNPLUG(Acquire, &Adapter->UnplugInterface);
     if (!NT_SUCCESS(status))
@@ -438,18 +438,18 @@ AdapterRequestReboot(
 
 static FORCEINLINE VOID
 __AdapterEnumerate(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PANSI_STRING    Devices
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PANSI_STRING       Devices
     )
 {
-    KIRQL               Irql;
-    ULONG               TargetId;
-    ULONG               DeviceId;
-    PANSI_STRING        Device;
-    ULONG               Index;
-    PXENVBD_TARGET      Target;
-    BOOLEAN             NeedInvalidate;
-    BOOLEAN             NeedReboot;
+    KIRQL                   Irql;
+    ULONG                   TargetId;
+    ULONG                   DeviceId;
+    PANSI_STRING            Device;
+    ULONG                   Index;
+    PXENVBD_TARGET          Target;
+    BOOLEAN                 NeedInvalidate;
+    BOOLEAN                 NeedReboot;
 
     NeedInvalidate = FALSE;
     NeedReboot = FALSE;
@@ -531,8 +531,8 @@ __AdapterEnumerate(
 
 static DECLSPEC_NOINLINE NTSTATUS
 AdapterScanThread(
-    IN  PXENVBD_THREAD  Thread,
-    IN  PVOID           Context
+    _In_ PXENVBD_THREAD Thread,
+    _In_ PVOID          Context
     )
 {
     PXENVBD_ADAPTER     Adapter = Context;
@@ -591,17 +591,17 @@ done:
 
 static FORCEINLINE BOOLEAN
 __AdapterMatchDistribution(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PCHAR       Buffer
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PCHAR              Buffer
     )
 {
-    PCHAR           Vendor;
-    PCHAR           Product;
-    PCHAR           Context;
-    const CHAR      *Text;
-    BOOLEAN         Match;
-    ULONG           Index;
-    NTSTATUS        status;
+    PCHAR                   Vendor;
+    PCHAR                   Product;
+    PCHAR                   Context;
+    const CHAR              *Text;
+    BOOLEAN                 Match;
+    ULONG                   Index;
+    NTSTATUS                status;
 
     UNREFERENCED_PARAMETER(Adapter);
 
@@ -651,13 +651,13 @@ fail1:
 
 static VOID
 AdapterClearDistribution(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    PCHAR           Buffer;
-    PANSI_STRING    Distributions;
-    ULONG           Index;
-    NTSTATUS        status;
+    PCHAR                   Buffer;
+    PANSI_STRING            Distributions;
+    ULONG                   Index;
+    NTSTATUS                status;
 
     Trace("====>\n");
 
@@ -714,14 +714,14 @@ done:
 
 static NTSTATUS
 AdapterSetDistribution(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    ULONG           Index;
-    CHAR            Distribution[MAXNAMELEN];
-    CHAR            Vendor[MAXNAMELEN];
-    const CHAR      *Product;
-    NTSTATUS        status;
+    ULONG                   Index;
+    CHAR                    Distribution[MAXNAMELEN];
+    CHAR                    Vendor[MAXNAMELEN];
+    const CHAR              *Product;
+    NTSTATUS                status;
 
     Trace("====>\n");
 
@@ -808,10 +808,10 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __AdapterD3ToD0(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     Trace("=====>\n");
 
@@ -854,7 +854,7 @@ fail1:
 
 static FORCEINLINE VOID
 __AdapterD0ToD3(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
     Trace("=====>\n");
@@ -879,7 +879,7 @@ __AdapterD0ToD3(
 
 static VOID
 AdapterSuspendLateCallback(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_ADAPTER Adapter = Argument;
@@ -902,8 +902,8 @@ AdapterSuspendLateCallback(
 
 static DECLSPEC_NOINLINE VOID
 AdapterDebugCallback(
-    IN  PVOID       Context,
-    IN  BOOLEAN     Crashing
+    _In_ PVOID      Context,
+    _In_ BOOLEAN    Crashing
     )
 {
     PXENVBD_ADAPTER Adapter = Context;
@@ -939,11 +939,11 @@ AdapterDebugCallback(
 
 static NTSTATUS
 AdapterD3ToD0(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    NTSTATUS            status;
-    ULONG               TargetId;
+    NTSTATUS                status;
+    ULONG                   TargetId;
 
     if (!__AdapterSetDevicePowerState(Adapter, PowerDeviceD0))
         return STATUS_SUCCESS;
@@ -1034,10 +1034,10 @@ fail1:
 
 static VOID
 AdapterD0ToD3(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    ULONG               TargetId;
+    ULONG                   TargetId;
 
     if (!__AdapterSetDevicePowerState(Adapter, PowerDeviceD3))
         return;
@@ -1070,8 +1070,8 @@ AdapterD0ToD3(
 
 static DECLSPEC_NOINLINE NTSTATUS
 AdapterDevicePowerThread(
-    IN  PXENVBD_THREAD  Thread,
-    IN  PVOID           Context
+    _In_ PXENVBD_THREAD Thread,
+    _In_ PVOID          Context
     )
 {
     PXENVBD_ADAPTER     Adapter = Context;
@@ -1122,7 +1122,7 @@ AdapterDevicePowerThread(
 
 PXENVBD_BOUNCE
 AdapterGetBounce(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
     return XENBUS_CACHE(Get,
@@ -1133,8 +1133,8 @@ AdapterGetBounce(
 
 VOID
 AdapterPutBounce(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_BOUNCE  Bounce
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PXENVBD_BOUNCE     Bounce
     )
 {
     XENBUS_CACHE(Put,
@@ -1146,8 +1146,8 @@ AdapterPutBounce(
 
 static DECLSPEC_NOINLINE NTSTATUS
 AdapterBounceCtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID      Argument,
+    _In_ PVOID      Object
     )
 {
     PXENVBD_BOUNCE  Bounce = Object;
@@ -1171,8 +1171,8 @@ fail1:
 
 static DECLSPEC_NOINLINE VOID
 AdapterBounceDtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID      Argument,
+    _In_ PVOID      Object
     )
 {
     PXENVBD_BOUNCE  Bounce = Object;
@@ -1187,7 +1187,7 @@ AdapterBounceDtor(
 
 static DECLSPEC_NOINLINE VOID
 AdapterAcquireLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_ADAPTER Adapter = Argument;
@@ -1196,7 +1196,7 @@ AdapterAcquireLock(
 
 static DECLSPEC_NOINLINE VOID
 AdapterReleaseLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_ADAPTER Adapter = Argument;
@@ -1205,10 +1205,10 @@ AdapterReleaseLock(
 
 static FORCEINLINE VOID
 __AdapterSetBootEmulated(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     Adapter->BootEmulated = FALSE;
 
@@ -1222,22 +1222,22 @@ __AdapterSetBootEmulated(
     XENBUS_UNPLUG(Release, &Adapter->UnplugInterface);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 __AdapterQueryInterface(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  const GUID      *Guid,
-    IN  ULONG           Version,
-    OUT PINTERFACE      Interface,
-    IN  ULONG           Size,
-    IN  BOOLEAN         Optional
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ const GUID         *Guid,
+    _In_ ULONG              Version,
+    _Out_ PINTERFACE        Interface,
+    _In_ ULONG              Size,
+    _In_ BOOLEAN            Optional
     )
 {
-    KEVENT              Event;
-    IO_STATUS_BLOCK     StatusBlock;
-    PIRP                Irp;
-    PIO_STACK_LOCATION  StackLocation;
-    NTSTATUS            status;
+    KEVENT                  Event;
+    IO_STATUS_BLOCK         StatusBlock;
+    PIRP                    Irp;
+    PIO_STACK_LOCATION      StackLocation;
+    NTSTATUS                status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -1303,16 +1303,16 @@ fail1:
                             sizeof( ## _name ## _INTERFACE),    \
                             (_opt))
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 AdapterInitialize(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PDEVICE_OBJECT  PhysicalDeviceObject,
-    IN  PDEVICE_OBJECT  LowerDeviceObject
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PDEVICE_OBJECT     PhysicalDeviceObject,
+    _In_ PDEVICE_OBJECT     LowerDeviceObject
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -1480,10 +1480,10 @@ fail1:
 
 static VOID
 AdapterTeardown(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
-    ULONG               TargetId;
+    ULONG                   TargetId;
 
     ASSERT3U(Adapter->DevicePower, ==, PowerDeviceD3);
 
@@ -1563,11 +1563,11 @@ AdapterTeardown(
 
 VOID
 AdapterCompleteSrb(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
-    PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb;
+    PSCSI_REQUEST_BLOCK     Srb = SrbExt->Srb;
 
     ASSERT3U(Srb->SrbStatus, !=, SRB_STATUS_PENDING);
 
@@ -1581,7 +1581,7 @@ AdapterCompleteSrb(
 
 VOID
 AdapterTargetListChanged(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     )
 {
     StorPortNotification(BusChangeDetected,
@@ -1591,8 +1591,8 @@ AdapterTargetListChanged(
 
 VOID
 AdapterSetDeviceQueueDepth(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  ULONG           TargetId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ ULONG              TargetId
     )
 {
     if (!StorPortSetDeviceQueueDepth(Adapter,
@@ -1606,11 +1606,11 @@ AdapterSetDeviceQueueDepth(
 
 PFN_NUMBER
 AdapterGetNextSGEntry(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_SRBEXT  SrbExt,
-    IN  ULONG           Existing,
-    OUT PULONG          Offset,
-    OUT PULONG          Length
+    _In_ PXENVBD_ADAPTER            Adapter,
+    _In_ PXENVBD_SRBEXT             SrbExt,
+    _In_ ULONG                      Existing,
+    _Out_ PULONG                    Offset,
+    _Out_ PULONG                    Length
     )
 {
     PSTOR_SCATTER_GATHER_LIST       SGList = SrbExt->SGList;
@@ -1642,12 +1642,12 @@ AdapterGetNextSGEntry(
 
 static FORCEINLINE VOID
 AdapterPullupSrb(
-    IN  PXENVBD_ADAPTER     Adapter,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_ADAPTER        Adapter,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    UCHAR                   Operation;
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    UCHAR                       Operation;
 
     Operation = Cdb_OperationEx(Srb);
     switch (Operation) {
@@ -1666,11 +1666,11 @@ AdapterPullupSrb(
 
 static VOID
 AdapterUnplugRequest(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  BOOLEAN         Make
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ BOOLEAN            Make
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     status = XENBUS_UNPLUG(Acquire, &Adapter->UnplugInterface);
     if (!NT_SUCCESS(status))
@@ -1686,11 +1686,11 @@ AdapterUnplugRequest(
 
 static PXENVBD_TARGET
 AdapterGetTargetFromDeviceObject(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject
     )
 {
-    ULONG               TargetId;
+    ULONG                   TargetId;
 
     ASSERT3P(DeviceObject, !=, NULL);
 
@@ -1707,18 +1707,18 @@ AdapterGetTargetFromDeviceObject(
 
 static PXENVBD_TARGET
 AdapterMapDeviceObjectToTarget(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject
     )
 {
-    PXENVBD_TARGET      Target;
-    KEVENT              Complete;
-    PIRP                Irp;
-    IO_STATUS_BLOCK     StatusBlock;
-    PIO_STACK_LOCATION  Stack;
-    NTSTATUS            Status;
-    PWCHAR              String;
-    ULONG               TargetId;
+    PXENVBD_TARGET          Target;
+    KEVENT                  Complete;
+    PIRP                    Irp;
+    IO_STATUS_BLOCK         StatusBlock;
+    PIO_STACK_LOCATION      Stack;
+    NTSTATUS                Status;
+    PWCHAR                  String;
+    ULONG                   TargetId;
     DECLARE_UNICODE_STRING_SIZE(UniStr, 4);
 
     KeInitializeEvent(&Complete, NotificationEvent, FALSE);
@@ -1782,13 +1782,13 @@ fail1:
 
 static NTSTATUS
 AdapterForwardPnp(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  Stack;
-    PXENVBD_TARGET      Target;
+    PIO_STACK_LOCATION      Stack;
+    PXENVBD_TARGET          Target;
 
     ASSERT3P(DeviceObject, !=, Adapter->DeviceObject);
 
@@ -1811,12 +1811,12 @@ AdapterForwardPnp(
 
 NTSTATUS
 AdapterDispatchPnp(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  Stack;
+    PIO_STACK_LOCATION      Stack;
 
     if (Adapter->DeviceObject != DeviceObject)
         return AdapterForwardPnp(Adapter, DeviceObject, Irp);
@@ -1854,14 +1854,14 @@ AdapterDispatchPnp(
 
 NTSTATUS
 AdapterDispatchPower(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  Stack;
-    POWER_STATE_TYPE    PowerType;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      Stack;
+    POWER_STATE_TYPE        PowerType;
+    NTSTATUS                status;
 
     if (Adapter->DeviceObject != DeviceObject)
         return DriverDispatchPower(DeviceObject, Irp);
@@ -1901,8 +1901,8 @@ HW_RESET_BUS        AdapterHwResetBus;
 
 BOOLEAN
 AdapterHwResetBus(
-    IN  PVOID       DevExt,
-    IN  ULONG       PathId
+    _In_ PVOID      DevExt,
+    _In_ ULONG      PathId
     )
 {
     PXENVBD_ADAPTER Adapter = DevExt;
@@ -1925,11 +1925,11 @@ AdapterHwResetBus(
 
 static FORCEINLINE VOID
 __AdapterSrbPnp(
-    IN  PXENVBD_ADAPTER         Adapter,
-    IN  PSCSI_PNP_REQUEST_BLOCK Srb
+    _In_ PXENVBD_ADAPTER            Adapter,
+    _In_ PSCSI_PNP_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_TARGET              Target;
+    PXENVBD_TARGET                  Target;
 
     if (Srb->SrbPnPFlags & SRB_PNP_FLAGS_ADAPTER_REQUEST)
         return;
@@ -1958,13 +1958,13 @@ HW_BUILDIO          AdapterHwBuildIo;
 
 BOOLEAN
 AdapterHwBuildIo(
-    IN  PVOID               DevExt,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PVOID                  DevExt,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_ADAPTER         Adapter = DevExt;
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    PXENVBD_TARGET          Target;
+    PXENVBD_ADAPTER             Adapter = DevExt;
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    PXENVBD_TARGET              Target;
 
     RtlZeroMemory(SrbExt, sizeof(XENVBD_SRBEXT));
     SrbExt->Srb = Srb;
@@ -2021,14 +2021,14 @@ HW_STARTIO          AdapterHwStartIo;
 
 BOOLEAN
 AdapterHwStartIo(
-    IN  PVOID               DevExt,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PVOID                  DevExt,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_ADAPTER         Adapter = DevExt;
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    BOOLEAN                 WasQueued = FALSE;
-    PXENVBD_TARGET          Target;
+    PXENVBD_ADAPTER             Adapter = DevExt;
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    BOOLEAN                     WasQueued = FALSE;
+    PXENVBD_TARGET              Target;
 
     InterlockedIncrement((PLONG)&Adapter->StartIo);
     Target = AdapterGetTarget(Adapter, Srb->TargetId);
@@ -2073,9 +2073,9 @@ HW_ADAPTER_CONTROL  AdapterHwAdapterControl;
 
 SCSI_ADAPTER_CONTROL_STATUS
 AdapterHwAdapterControl(
-    IN  PVOID                       DevExt,
-    IN  SCSI_ADAPTER_CONTROL_TYPE   ControlType,
-    IN  PVOID                       Parameters
+    _In_ PVOID                          DevExt,
+    _In_ SCSI_ADAPTER_CONTROL_TYPE      ControlType,
+    _In_ PVOID                          Parameters
     )
 {
     PSCSI_SUPPORTED_CONTROL_TYPE_LIST   List;
@@ -2098,12 +2098,12 @@ HW_FIND_ADAPTER     AdapterHwFindAdapter;
 
 ULONG
 AdapterHwFindAdapter(
-    IN  PVOID                               DevExt,
-    IN  PVOID                               Context,
-    IN  PVOID                               BusInformation,
-    IN  PCHAR                               ArgumentString,
-    IN OUT PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
-    OUT PBOOLEAN                            Again
+    _In_ PVOID                              DevExt,
+    _In_ PVOID                              Context,
+    _In_ PVOID                              BusInformation,
+    _In_ PCHAR                              ArgumentString,
+    _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo,
+    _Out_ PBOOLEAN                          Again
     )
 {
     UNREFERENCED_PARAMETER(DevExt);
@@ -2138,7 +2138,7 @@ AdapterHwFindAdapter(
 
 static FORCEINLINE VOID
 AdapterSetPerformanceOptions(
-    IN  PVOID               DevExt
+    _In_ PVOID              DevExt
     )
 {
     PERF_CONFIGURATION_DATA PerfData;
@@ -2193,7 +2193,7 @@ HW_PASSIVE_INITIALIZE_ROUTINE AdapterHwPassiveInitialize;
 
 BOOLEAN
 AdapterHwPassiveInitialize(
-    IN  PVOID   DevExt
+    _In_ PVOID      DevExt
     )
 {
     PXENVBD_ADAPTER Adapter = DevExt;
@@ -2244,7 +2244,7 @@ HW_INITIALIZE   AdapterHwInitialize;
 
 BOOLEAN
 AdapterHwInitialize(
-    IN  PVOID   DevExt
+    _In_ PVOID  DevExt
     )
 {
     return StorPortEnablePassiveInitialization(DevExt,
@@ -2255,7 +2255,7 @@ HW_INTERRUPT    AdapterHwInterrupt;
 
 BOOLEAN
 AdapterHwInterrupt(
-    IN  PVOID   DevExt
+    _In_ PVOID  DevExt
     )
 {
     UNREFERENCED_PARAMETER(DevExt);
@@ -2264,8 +2264,8 @@ AdapterHwInterrupt(
 
 NTSTATUS
 AdapterDriverEntry(
-    IN  PUNICODE_STRING     RegistryPath,
-    IN  PDRIVER_OBJECT      DriverObject
+    _In_ PUNICODE_STRING    RegistryPath,
+    _In_ PDRIVER_OBJECT     DriverObject
     )
 {
     HW_INITIALIZATION_DATA  InitData;
diff --git a/src/xenvbd/adapter.h b/src/xenvbd/adapter.h
index 7b8b952..f57168a 100644
--- a/src/xenvbd/adapter.h
+++ b/src/xenvbd/adapter.h
@@ -64,75 +64,75 @@ ADAPTER_GET_INTERFACE(Suspend, PXENBUS_SUSPEND_INTERFACE)
 
 extern BOOLEAN
 AdapterIsTargetEmulated(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  ULONG           TargetId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ ULONG              TargetId
     );
 
 extern BOOLEAN
 AdapterBootEmulated(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     );
 
 extern VOID
 AdapterRequestReboot(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     );
 
 extern VOID
 AdapterCompleteSrb(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PXENVBD_SRBEXT     SrbExt
     );
 
 extern VOID
 AdapterTargetListChanged(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     );
 
 extern VOID
 AdapterSetDeviceQueueDepth(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  ULONG           TargetId
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ ULONG              TargetId
     );
 
 extern PFN_NUMBER
 AdapterGetNextSGEntry(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_SRBEXT  SrbExt,
-    IN  ULONG           Existing,
-    OUT PULONG          Offset,
-    OUT PULONG          Length
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PXENVBD_SRBEXT     SrbExt,
+    _In_ ULONG              Existing,
+    _Out_ PULONG            Offset,
+    _Out_ PULONG            Length
     );
 
 extern PXENVBD_BOUNCE
 AdapterGetBounce(
-    IN  PXENVBD_ADAPTER Adapter
+    _In_ PXENVBD_ADAPTER    Adapter
     );
 
 extern VOID
 AdapterPutBounce(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PXENVBD_BOUNCE  Bounce
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PXENVBD_BOUNCE     Bounce
     );
 
 extern NTSTATUS
 AdapterDispatchPnp(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     );
 
 extern NTSTATUS
 AdapterDispatchPower(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     );
 
 extern NTSTATUS
 AdapterDriverEntry(
-    IN  PUNICODE_STRING RegistryPath,
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_ PUNICODE_STRING    RegistryPath,
+    _In_ PDRIVER_OBJECT     DriverObject
     );
 
 #endif // _XENVBD_ADAPTER_H
diff --git a/src/xenvbd/assert.h b/src/xenvbd/assert.h
index fe64a91..b1e206c 100644
--- a/src/xenvbd/assert.h
+++ b/src/xenvbd/assert.h
@@ -155,10 +155,10 @@ __Bug(
 
 static __inline BOOLEAN
 _IsZeroMemory(
-    _In_ PCSTR          Caller,
-    _In_ PCSTR          Name,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length
+    _In_ PCSTR      Caller,
+    _In_ PCSTR      Name,
+    _In_ PVOID      Buffer,
+    _In_ ULONG      Length
     )
 {
     ULONG           Offset;
@@ -179,10 +179,10 @@ _IsZeroMemory(
 
 static __inline BOOLEAN
 _IsZeroMemory(
-    _In_ PCSTR          Caller,
-    _In_ PCSTR          Name,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length
+    _In_ PCSTR  Caller,
+    _In_ PCSTR  Name,
+    _In_ PVOID  Buffer,
+    _In_ ULONG  Length
     )
 {
     UNREFERENCED_PARAMETER(Caller);
diff --git a/src/xenvbd/base64.c b/src/xenvbd/base64.c
index 455327a..0d37d22 100644
--- a/src/xenvbd/base64.c
+++ b/src/xenvbd/base64.c
@@ -42,7 +42,7 @@
 
 static FORCEINLINE PVOID
 Base64Allocate(
-    IN  ULONG   Size
+    _In_ ULONG  Size
     )
 {
     return __AllocatePoolWithTag(NonPagedPool,
@@ -52,7 +52,7 @@ Base64Allocate(
 
 VOID
 Base64Free(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, BASE64_POOL_TAG);
@@ -60,7 +60,7 @@ Base64Free(
 
 static FORCEINLINE UCHAR
 __DecodeChar(
-    IN  CHAR    Char
+    _In_ CHAR   Char
     )
 {
     if (Char >= 'A' && Char <= 'Z') return Char - 'A';
@@ -74,12 +74,12 @@ __DecodeChar(
 
 static DECLSPEC_NOINLINE CHAR
 __Decode(
-    IN  PUCHAR  Dst,
-    IN  PCHAR   Src,
-    IN  ULONG   Left
+    _In_ PUCHAR Dst,
+    _In_ PCHAR  Src,
+    _In_ ULONG  Left
     )
 {
-    UCHAR   Values[4];
+    UCHAR       Values[4];
 
     if (Left < 4)
         return -1;
@@ -113,17 +113,17 @@ __Decode(
 
 NTSTATUS
 Base64Decode(
-    IN  PCHAR   String,
-    OUT PVOID   *Binary,
-    OUT PULONG  Length
+    _In_ PCHAR      String,
+    _Outptr_ PVOID  *Binary,
+    _Out_ PULONG    Length
     )
 {
-    ULONG       StringLength;
-    ULONG       BlockCount;
-    ULONG       Index;
-    PUCHAR      Buffer;
-    CHAR        Padding;
-    NTSTATUS    status;
+    ULONG           StringLength;
+    ULONG           BlockCount;
+    ULONG           Index;
+    PUCHAR          Buffer;
+    CHAR            Padding;
+    NTSTATUS        status;
 
     StringLength = (ULONG)strlen(String);
 
diff --git a/src/xenvbd/base64.h b/src/xenvbd/base64.h
index 52b6fac..73159ce 100644
--- a/src/xenvbd/base64.h
+++ b/src/xenvbd/base64.h
@@ -37,14 +37,14 @@
 
 extern VOID
 Base64Free(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     );
 
 extern NTSTATUS
 Base64Decode(
-    IN  PCHAR   String,
-    OUT PVOID   *Binary,
-    OUT PULONG  Length
+    _In_ PCHAR      String,
+    _Outptr_ PVOID  *Binary,
+    _Out_ PULONG    Length
     );
 
 #endif // _XENVBD_BASE64_H
diff --git a/src/xenvbd/debug.h b/src/xenvbd/debug.h
index 84c27f2..617ad99 100644
--- a/src/xenvbd/debug.h
+++ b/src/xenvbd/debug.h
@@ -54,13 +54,13 @@
 //
 static __inline VOID
 __DebugMessage(
-    __in    ULONG       Level,
-    __in __nullterminated const CHAR  *Prefix,
-    __in __nullterminated const CHAR  *Format,
+    _In_ ULONG                          Level,
+    _In_ __nullterminated const CHAR    *Prefix,
+    _In_ __nullterminated const CHAR    *Format,
     ...
     )
 {
-    va_list         Arguments;
+    va_list                             Arguments;
 
     va_start(Arguments, Format);
 
diff --git a/src/xenvbd/driver.c b/src/xenvbd/driver.c
index 676246e..1b6b191 100644
--- a/src/xenvbd/driver.c
+++ b/src/xenvbd/driver.c
@@ -69,7 +69,7 @@ static XENVBD_DRIVER Driver;
 
 VOID
 DriverSetAdapter(
-    IN  PVOID   Adapter
+    _In_ PVOID  Adapter
     )
 {
     ASSERT3P(Driver.Adapter, ==, NULL);
@@ -95,8 +95,8 @@ DriverGetParametersKey(
 
 NTSTATUS
 DriverDispatchPnp(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     return Driver.StorPortDispatchPnp(DeviceObject, Irp);
@@ -104,20 +104,20 @@ DriverDispatchPnp(
 
 NTSTATUS
 DriverDispatchPower(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     return Driver.StorPortDispatchPower(DeviceObject, Irp);
 }
 
-__drv_dispatchType(IRP_MJ_PNP)
+_Dispatch_type_(IRP_MJ_PNP)
 DRIVER_DISPATCH             DispatchPnp;
 
 NTSTATUS 
 DispatchPnp(
-    IN PDEVICE_OBJECT   DeviceObject,
-    IN PIRP             Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     if (Driver.Adapter == NULL)
@@ -126,13 +126,13 @@ DispatchPnp(
     return AdapterDispatchPnp(Driver.Adapter, DeviceObject, Irp);
 }
 
-__drv_dispatchType(IRP_MJ_POWER)
+_Dispatch_type_(IRP_MJ_POWER)
 DRIVER_DISPATCH             DispatchPower;
 
 NTSTATUS 
 DispatchPower(
-    IN PDEVICE_OBJECT   DeviceObject,
-    IN PIRP             Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     if (Driver.Adapter == NULL)
@@ -145,7 +145,7 @@ DRIVER_UNLOAD           DriverUnload;
 
 VOID
 DriverUnload(
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_ PDRIVER_OBJECT DriverObject
     )
 {
     Verbose("%u.%u.%u.%u (%02u/%02u/%04u)\n",
@@ -170,7 +170,7 @@ DriverUnload(
     RegistryTeardown();
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static FORCEINLINE VOID
 __DriverInitializeOverrides(
     VOID
@@ -216,15 +216,15 @@ __DriverInitializeOverrides(
     }
 }
 
-__checkReturn
+_Check_return_
 _Success_(return)
 BOOLEAN
 DriverGetFeatureOverride(
-    IN  XENVBD_FEATURE   Feature,
-    OUT PULONG           Value
+    _In_ XENVBD_FEATURE Feature,
+    _Out_ PULONG        Value
     )
 {
-    BOOLEAN              Present = FALSE;
+    BOOLEAN             Present = FALSE;
 
     if ((ULONG)Feature < ARRAYSIZE(Driver.FeatureOverride)) {
         Present = Driver.FeatureOverride[Feature].Present;
@@ -234,10 +234,10 @@ DriverGetFeatureOverride(
     return Present;
 }
 
-__checkReturn
+_Check_return_
 const CHAR *
 DriverGetFeatureName(
-    IN  XENVBD_FEATURE  Feature
+    _In_ XENVBD_FEATURE Feature
     )
 {
     return ((ULONG)Feature < ARRAYSIZE(Driver.FeatureOverride)) ?
@@ -271,8 +271,8 @@ DRIVER_INITIALIZE   DriverEntry;
 
 NTSTATUS
 DriverEntry(
-    IN  PDRIVER_OBJECT      DriverObject,
-    IN  PUNICODE_STRING     RegistryPath
+    _In_ PDRIVER_OBJECT     DriverObject,
+    _In_ PUNICODE_STRING    RegistryPath
     )
 {
     HANDLE                  ParametersKey;
diff --git a/src/xenvbd/driver.h b/src/xenvbd/driver.h
index 5c5df45..d09140a 100644
--- a/src/xenvbd/driver.h
+++ b/src/xenvbd/driver.h
@@ -42,7 +42,7 @@
 
 extern VOID
 DriverSetAdapter(
-    IN  PVOID   Adapter
+    _In_ PVOID  Adapter
     );
 
 extern HANDLE
@@ -52,14 +52,14 @@ DriverGetParametersKey(
 
 extern NTSTATUS
 DriverDispatchPnp(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     );
 
 extern NTSTATUS
 DriverDispatchPower(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     );
 
 // Registry overrides for driver features
@@ -81,18 +81,18 @@ typedef enum _XENVBD_FEATURE {
     NumberOfFeatures
 } XENVBD_FEATURE, *PXENVBD_FEATURE;
 
-__checkReturn
+_Check_return_
 _Success_(return)
 extern BOOLEAN
 DriverGetFeatureOverride(
-    IN  XENVBD_FEATURE   Feature,
-    OUT PULONG           Value
+    _In_ XENVBD_FEATURE Feature,
+    _Out_ PULONG        Value
     );
 
-__checkReturn
+_Check_return_
 extern const CHAR *
 DriverGetFeatureName(
-    IN  XENVBD_FEATURE  Feature
+    _In_ XENVBD_FEATURE Feature
     );
 
 extern ULONG
diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
index 5311dd5..98bedb3 100644
--- a/src/xenvbd/frontend.c
+++ b/src/xenvbd/frontend.c
@@ -98,7 +98,7 @@ struct _XENVBD_FRONTEND {
 
 static const PCHAR
 __XenvbdStateName(
-    IN  XENVBD_STATE                        State
+    _In_ XENVBD_STATE   State
     )
 {
     switch (State) {
@@ -167,13 +167,13 @@ FRONTEND_GET_PROPERTY_PTR(DiskInfo, PXENVBD_DISKINFO)
 
 //=============================================================================
 #define FRONTEND_POOL_TAG            'tnFX'
-__checkReturn
+_Check_return_
 __drv_allocatesMem(mem)
-__bcount(Size)
+_Writable_bytes_(Size)
 static FORCEINLINE PVOID
 #pragma warning(suppress: 28195)
 __FrontendAlloc(
-    __in  ULONG Size
+    _In_ ULONG  Size
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Size, FRONTEND_POOL_TAG);
@@ -182,7 +182,7 @@ __FrontendAlloc(
 static FORCEINLINE VOID
 #pragma warning(suppress: 28197)
 __FrontendFree(
-    __in __drv_freesMem(mem) PVOID Buffer
+    _In_ __drv_freesMem(mem) PVOID  Buffer
     )
 {
     if (Buffer)
@@ -191,8 +191,8 @@ __FrontendFree(
 
 VOID
 FrontendRemoveFeature(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  UCHAR                   BlkifOperation
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ UCHAR              BlkifOperation
     )
 {
     switch (BlkifOperation) {
@@ -219,9 +219,9 @@ FrontendRemoveFeature(
 
 PVOID
 FrontendGetInquiryOverride(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  UCHAR               PageCode,
-    OUT PULONG              Length
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ UCHAR              PageCode,
+    _Out_ PULONG            Length
     )
 {
     switch (PageCode) {
@@ -239,7 +239,7 @@ FrontendGetInquiryOverride(
 
 VOID
 FrontendSetEjected(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     (VOID) XENBUS_STORE(Printf,
@@ -252,7 +252,7 @@ FrontendSetEjected(
 
 VOID
 FrontendSetEjectFailed(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     (VOID) XENBUS_STORE(Printf,
@@ -265,9 +265,9 @@ FrontendSetEjectFailed(
 
 VOID
 FrontendSetDeviceUsage(
-    IN  PXENVBD_FRONTEND                Frontend,
-    IN  DEVICE_USAGE_NOTIFICATION_TYPE  Type,
-    IN  BOOLEAN                         Value
+    _In_ PXENVBD_FRONTEND               Frontend,
+    _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type,
+    _In_ BOOLEAN                        Value
     )
 {
     PCHAR                               UsageName;
@@ -304,15 +304,15 @@ FrontendSetDeviceUsage(
 }
 
 //=============================================================================
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 __UpdateBackendPath(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS    Status;
-    PCHAR       Value;
-    ULONG       Length;
+    NTSTATUS                Status;
+    PCHAR                   Value;
+    ULONG                   Length;
 
     Status = XENBUS_STORE(Read,
                           &Frontend->StoreInterface,
@@ -360,17 +360,17 @@ __UpdateBackendPath(
 
     return Status;
 }
-__drv_maxIRQL(DISPATCH_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 static NTSTATUS
 __ReadState(
-    __in  PXENVBD_FRONTEND        Frontend,
-    __in_opt PXENBUS_STORE_TRANSACTION Transaction,
-    __in  PCHAR                   Path,
-    __out XenbusState*            State
+    _In_ PXENVBD_FRONTEND               Frontend,
+    _In_opt_ PXENBUS_STORE_TRANSACTION  Transaction,
+    _In_ PCHAR                          Path,
+    _Out_ XenbusState                   *State
     )
 {
-    NTSTATUS        Status;
-    PCHAR           Buffer;
+    NTSTATUS                            Status;
+    PCHAR                               Buffer;
 
     Status = XENBUS_STORE(Read,
                           &Frontend->StoreInterface,
@@ -392,18 +392,18 @@ fail:
     *State = XenbusStateUnknown;
     return Status;
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 __WaitState(
-    __in  PXENVBD_FRONTEND        Frontend,
-    __inout  XenbusState*         State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Inout_ XenbusState     *State
     )
 {
-    NTSTATUS        Status;
-    XenbusState     OldState = *State;
-    PXENBUS_STORE_WATCH Watch;
-    KEVENT          Event;
-    LARGE_INTEGER   Timeout;
+    NTSTATUS                Status;
+    XenbusState             OldState = *State;
+    PXENBUS_STORE_WATCH     Watch;
+    KEVENT                  Event;
+    LARGE_INTEGER           Timeout;
 
     LARGE_INTEGER   StartTime;
     LARGE_INTEGER   CurrentTime;
@@ -469,14 +469,14 @@ fail1:
 
     return Status;
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 ___SetState(
-    __in  PXENVBD_FRONTEND        Frontend,
-    __in  XenbusState             State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XenbusState        State
     )
 {
-    NTSTATUS    Status;
+    NTSTATUS                Status;
 
     Status = XENBUS_STORE(Printf,
                           &Frontend->StoreInterface,
@@ -495,17 +495,17 @@ ___SetState(
 
     return Status;
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 __CheckBackendForEject(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    XenbusState     FrontendState;
-    XenbusState     BackendState;
-    BOOLEAN         Online;
-    ULONG           Attempt;
-    NTSTATUS        Status;
+    XenbusState             FrontendState;
+    XenbusState             BackendState;
+    BOOLEAN                 Online;
+    ULONG                   Attempt;
+    NTSTATUS                Status;
 
 #pragma prefast(suppress:28649)
     if (Frontend->FrontendPath == NULL)
@@ -588,9 +588,9 @@ abort:
 
 static FORCEINLINE BOOLEAN
 FrontendReadFeature(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  XENVBD_FEATURE      Feature,
-    IN  PBOOLEAN            Value
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_FEATURE     Feature,
+    _In_ PBOOLEAN           Value
 )
 {
     NTSTATUS                status;
@@ -629,9 +629,9 @@ FrontendReadFeature(
 
 static FORCEINLINE BOOLEAN
 FrontendReadDiskFeature(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  PCHAR               Name,
-    IN  PBOOLEAN            Value
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              Name,
+    _In_ PBOOLEAN           Value
     )
 {
     NTSTATUS                status;
@@ -658,10 +658,10 @@ FrontendReadDiskFeature(
 
 static FORCEINLINE BOOLEAN
 FrontendReadValue32(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  XENVBD_FEATURE      Feature,
-    IN  BOOLEAN             AllowOverride,
-    IN  PULONG              Value
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_FEATURE     Feature,
+    _In_ BOOLEAN            AllowOverride,
+    _In_ PULONG             Value
 )
 {
     NTSTATUS                status;
@@ -701,9 +701,9 @@ FrontendReadValue32(
 
 static FORCEINLINE BOOLEAN
 FrontendReadDiskValue32(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  PCHAR               Name,
-    IN  PULONG              Value
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              Name,
+    _In_ PULONG             Value
 )
 {
     NTSTATUS                status;
@@ -730,9 +730,9 @@ FrontendReadDiskValue32(
 
 static FORCEINLINE BOOLEAN
 FrontendReadValue64(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  PCHAR               Name,
-    IN OUT PULONG64         Value
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ PCHAR              Name,
+    _Inout_ PULONG64        Value
     )
 {
     NTSTATUS                status;
@@ -759,7 +759,7 @@ FrontendReadValue64(
 
 static FORCEINLINE ULONG
 __Size(
-    __in  PXENVBD_DISKINFO  Info
+    _In_ PXENVBD_DISKINFO   Info
     )
 {
     ULONG64                 MBytes = Info->BlkifSectorCount >> (20 - 
BLKIF_SECTOR_SHIFT);
@@ -771,7 +771,7 @@ __Size(
 }
 static FORCEINLINE PCHAR
 __Units(
-    __in  PXENVBD_DISKINFO  Info
+    _In_ PXENVBD_DISKINFO   Info
     )
 {
     ULONG64                 MBytes = Info->BlkifSectorCount >> (20 - 
BLKIF_SECTOR_SHIFT);
@@ -784,7 +784,7 @@ __Units(
 
 static FORCEINLINE VOID
 FrontendReadFeatures(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     BOOLEAN                 DiscardFeature = FALSE;
@@ -853,7 +853,7 @@ FrontendReadFeatures(
 
 static FORCEINLINE VOID
 FrontendReadDiskInfo(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     BOOLEAN                 Changed;
@@ -928,7 +928,7 @@ FrontendReadDiskInfo(
 
 static FORCEINLINE VOID
 FrontendReadInquiryOverrides(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     PCHAR                   Buffer;
@@ -968,14 +968,14 @@ FrontendReadInquiryOverrides(
 }
 
 //=============================================================================
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendClose(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XenbusState     BackendState;
+    NTSTATUS                Status;
+    XenbusState             BackendState;
 
     // unwatch backend (null check for initial close operation)
     if (Frontend->BackendWatch)
@@ -1032,14 +1032,14 @@ fail2:
 fail1:
     return Status;
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendPrepare(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XenbusState     BackendState;
+    NTSTATUS                Status;
+    XenbusState             BackendState;
 
     // get/update backend path
     Status = __UpdateBackendPath(Frontend);
@@ -1133,7 +1133,7 @@ fail1:
 }
 static VOID
 FrontendSetNumQueues(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     PCHAR                   Buffer;
@@ -1163,14 +1163,14 @@ FrontendSetNumQueues(
             __FrontendGetTargetId(Frontend),
             Frontend->NumQueues);
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendConnect(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
-    NTSTATUS        Status;
-    XenbusState     BackendState;
+    NTSTATUS                Status;
+    XenbusState             BackendState;
 
     FrontendSetNumQueues(Frontend);
 
@@ -1317,10 +1317,10 @@ fail1:
     Frontend->NumQueues = 0;
     return Status;
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 FrontendDisconnect(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     RingDisconnect(Frontend->Ring);
@@ -1340,10 +1340,10 @@ FrontendDisconnect(
 
     RtlZeroMemory(&Frontend->Features, sizeof(XENVBD_FEATURES));
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 FrontendEnable(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     Frontend->Caps.Connected = TRUE;
@@ -1352,10 +1352,10 @@ FrontendEnable(
     GranterEnable(Frontend->Granter);
     RingEnable(Frontend->Ring);
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE VOID
 FrontendDisable(
-    __in  PXENVBD_FRONTEND        Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     Frontend->Caps.Connected = FALSE;
@@ -1363,10 +1363,10 @@ FrontendDisable(
     RingDisable(Frontend->Ring);
     GranterDisable(Frontend->Granter);
 }
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static FORCEINLINE BOOLEAN
 FrontendIsPoisoned(
-    __in  PXENVBD_FRONTEND          Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     return RingIsPoisoned(Frontend->Ring);
@@ -1378,13 +1378,13 @@ _IRQL_requires_(DISPATCH_LEVEL)
 _Requires_lock_held_(Frontend->StateLock)
 static DECLSPEC_NOINLINE NTSTATUS
 __FrontendSetState(
-    __in  PXENVBD_FRONTEND        Frontend,
-    __in  XENVBD_STATE            State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_STATE       State
     )
 {
-    NTSTATUS    Status;
-    const ULONG TargetId = Frontend->TargetId;
-    BOOLEAN     Failed = FALSE;
+    NTSTATUS                Status;
+    const ULONG             TargetId = Frontend->TargetId;
+    BOOLEAN                 Failed = FALSE;
 
     Trace("Target[%d] @ (%d) =====>\n", TargetId, KeGetCurrentIrql());
     Verbose("Target[%d] : %s ----> %s\n", 
@@ -1554,10 +1554,10 @@ __FrontendSetState(
     return Failed ? STATUS_UNSUCCESSFUL : STATUS_SUCCESS;
 }
 
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 static DECLSPEC_NOINLINE VOID
 FrontendSuspendCallback(
-    IN  PVOID           Argument
+    _In_ PVOID          Argument
     )
 {
     PXENVBD_FRONTEND    Frontend = Argument;
@@ -1587,8 +1587,8 @@ FrontendSuspendCallback(
 
 static DECLSPEC_NOINLINE VOID
 FrontendDebugCallback(
-    IN  PVOID           Argument,
-    IN  BOOLEAN         Crashing
+    _In_ PVOID          Argument,
+    _In_ BOOLEAN        Crashing
     )
 {
     PXENVBD_FRONTEND    Frontend = Argument;
@@ -1668,11 +1668,11 @@ FrontendDebugCallback(
                  Frontend->DiskInfo.DiskInfo);
 }
 
-__checkReturn
-__drv_maxIRQL(DISPATCH_LEVEL)
+_Check_return_
+_IRQL_requires_max_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendD3ToD0(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     PXENVBD_ADAPTER         Adapter = TargetGetAdapter(Frontend->Target);
@@ -1749,10 +1749,10 @@ fail1:
     return status;
 }
 
-__drv_maxIRQL(DISPATCH_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 VOID
 FrontendD0ToD3(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     KIRQL                   Irql;
@@ -1789,11 +1789,11 @@ FrontendD0ToD3(
     KeReleaseSpinLock(&Frontend->StateLock, Irql);
 }
 
-__checkReturn
+_Check_return_
 NTSTATUS
 FrontendSetState(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  XENVBD_STATE        State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_STATE       State
     )
 {
     KIRQL                   Irql;
@@ -1807,11 +1807,11 @@ FrontendSetState(
     return status;
 }
 
-__checkReturn
+_Check_return_
 static DECLSPEC_NOINLINE NTSTATUS
 FrontendBackend(
-    __in PXENVBD_THREAD              Thread,
-    __in PVOID                       Context
+    _In_ PXENVBD_THREAD             Thread,
+    _In_ PVOID                      Context
     )
 {
     PXENVBD_FRONTEND                Frontend = Context;
@@ -1837,7 +1837,7 @@ FrontendBackend(
 
 NTSTATUS
 FrontendReset(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     NTSTATUS                status;
@@ -1863,14 +1863,14 @@ fail1:
 
 NTSTATUS
 FrontendCreate(
-    IN  PXENVBD_TARGET      Target,
-    IN  PCHAR               DeviceId,
-    IN  ULONG               TargetId,
-    OUT PXENVBD_FRONTEND*   _Frontend
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PCHAR                  DeviceId,
+    _In_ ULONG                  TargetId,
+    _Outptr_ PXENVBD_FRONTEND   *_Frontend
     )
 {
-    PXENVBD_FRONTEND        Frontend;
-    NTSTATUS                status;
+    PXENVBD_FRONTEND            Frontend;
+    NTSTATUS                    status;
 
     Trace("Target[%d] @ (%d) =====>\n", TargetId, KeGetCurrentIrql());
 
@@ -1959,7 +1959,7 @@ fail1:
 
 VOID
 FrontendDestroy(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     )
 {
     const ULONG             TargetId = Frontend->TargetId;
diff --git a/src/xenvbd/frontend.h b/src/xenvbd/frontend.h
index 18cc4fb..a2d8762 100644
--- a/src/xenvbd/frontend.h
+++ b/src/xenvbd/frontend.h
@@ -87,70 +87,70 @@ typedef struct _XENVBD_FRONTEND XENVBD_FRONTEND, 
*PXENVBD_FRONTEND;
 
 extern VOID
 FrontendRemoveFeature(
-    IN  PXENVBD_FRONTEND        Frontend,
-    IN  UCHAR                   BlkifOperation
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ UCHAR              BlkifOperation
     );
 
 extern PVOID
 FrontendGetInquiryOverride(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  UCHAR               PageCode,
-    OUT PULONG              Length
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ UCHAR              PageCode,
+    _Out_ PULONG            Length
     );
 
 extern VOID
 FrontendSetEjected(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 extern VOID
 FrontendSetEjectFailed(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 extern VOID
 FrontendSetDeviceUsage(
-    IN  PXENVBD_FRONTEND                Frontend,
-    IN  DEVICE_USAGE_NOTIFICATION_TYPE  Type,
-    IN  BOOLEAN                         Value
+    _In_ PXENVBD_FRONTEND               Frontend,
+    _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type,
+    _In_ BOOLEAN                        Value
     );
 
-__checkReturn
-__drv_maxIRQL(DISPATCH_LEVEL)
+_Check_return_
+_IRQL_requires_max_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendD3ToD0(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
-__drv_maxIRQL(DISPATCH_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
 extern VOID
 FrontendD0ToD3(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
-__checkReturn
+_Check_return_
 extern NTSTATUS
 FrontendSetState(
-    IN  PXENVBD_FRONTEND    Frontend,
-    IN  XENVBD_STATE        State
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _In_ XENVBD_STATE       State
     );
 
 extern NTSTATUS
 FrontendReset(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 extern NTSTATUS
 FrontendCreate(
-    IN  PXENVBD_TARGET      Target,
-    IN  PCHAR               DeviceId,
-    IN  ULONG               TargetId,
-    OUT PXENVBD_FRONTEND*   _Frontend
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PCHAR                  DeviceId,
+    _In_ ULONG                  TargetId,
+    _Outptr_ PXENVBD_FRONTEND   *_Frontend
     );
 
 extern VOID
 FrontendDestroy(
-    IN  PXENVBD_FRONTEND    Frontend
+    _In_ PXENVBD_FRONTEND   Frontend
     );
 
 #define FRONTEND_GET_PROPERTY(_name, _type)     \
diff --git a/src/xenvbd/granter.c b/src/xenvbd/granter.c
index c258cae..d1cbbfe 100644
--- a/src/xenvbd/granter.c
+++ b/src/xenvbd/granter.c
@@ -63,7 +63,7 @@ struct _XENVBD_GRANTER {
 
 static FORCEINLINE PVOID
 __GranterAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, GRANTER_POOL_TAG);
@@ -71,7 +71,7 @@ __GranterAllocate(
 
 static FORCEINLINE VOID
 __GranterFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     if (Buffer)
@@ -80,11 +80,11 @@ __GranterFree(
 
 NTSTATUS
 GranterCreate(
-    IN  PXENVBD_FRONTEND    Frontend,
-    OUT PXENVBD_GRANTER     *Granter
+    _In_ PXENVBD_FRONTEND       Frontend,
+    _Outptr_ PXENVBD_GRANTER    *Granter
     )
 {
-    NTSTATUS                status;
+    NTSTATUS                    status;
 
     status = STATUS_NO_MEMORY;
     *Granter = __GranterAllocate(sizeof(XENVBD_GRANTER));
@@ -102,7 +102,7 @@ fail1:
 
 VOID
 GranterDestroy(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     )
 {
     Granter->Frontend = NULL;
@@ -114,9 +114,9 @@ GranterDestroy(
 }
 
 static VOID
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 GranterAcquireLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_GRANTER Granter = Argument;
@@ -127,9 +127,9 @@ GranterAcquireLock(
 }
 
 static VOID
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 GranterReleaseLock(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_GRANTER Granter = Argument;
@@ -142,8 +142,8 @@ GranterReleaseLock(
 
 static DECLSPEC_NOINLINE VOID
 GranterDebugCallback(
-    IN  PVOID       Argument,
-    IN  BOOLEAN     Crashing
+    _In_ PVOID      Argument,
+    _In_ BOOLEAN    Crashing
     )
 {
     PXENVBD_GRANTER Granter = Argument;
@@ -168,12 +168,12 @@ GranterDebugCallback(
 
 NTSTATUS
 GranterConnect(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     )
 {
-    PXENVBD_ADAPTER     Adapter = 
TargetGetAdapter(FrontendGetTarget(Granter->Frontend));
-    CHAR                Name[MAXNAMELEN];
-    NTSTATUS            status;
+    PXENVBD_ADAPTER         Adapter = 
TargetGetAdapter(FrontendGetTarget(Granter->Frontend));
+    CHAR                    Name[MAXNAMELEN];
+    NTSTATUS                status;
 
     ASSERT(Granter->Connected == FALSE);
 
@@ -244,8 +244,8 @@ fail1:
 
 NTSTATUS
 GranterStoreWrite(
-    IN  PXENVBD_GRANTER Granter,
-    IN  PVOID           Transaction
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Transaction
     )
 {
     UNREFERENCED_PARAMETER(Granter);
@@ -256,7 +256,7 @@ GranterStoreWrite(
 
 VOID
 GranterEnable(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     )
 {
     ASSERT(Granter->Enabled == FALSE);
@@ -266,7 +266,7 @@ GranterEnable(
 
 VOID
 GranterDisable(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     )
 {
     ASSERT(Granter->Enabled == TRUE);
@@ -276,7 +276,7 @@ GranterDisable(
 
 VOID
 GranterDisconnect(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     )
 {
     ASSERT(Granter->Connected == TRUE);
@@ -305,10 +305,10 @@ GranterDisconnect(
 
 NTSTATUS
 GranterGet(
-    IN  PXENVBD_GRANTER     Granter,
-    IN  PFN_NUMBER          Pfn,
-    IN  BOOLEAN             ReadOnly,
-    OUT PVOID               *Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PFN_NUMBER         Pfn,
+    _In_ BOOLEAN            ReadOnly,
+    _Outptr_ PVOID          *Handle
     )
 {
     PXENBUS_GNTTAB_ENTRY    Entry;
@@ -346,8 +346,8 @@ fail1:
 
 VOID
 GranterPut(
-    IN  PXENVBD_GRANTER     Granter,
-    IN  PVOID               Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Handle
     )
 {
     PXENBUS_GNTTAB_ENTRY    Entry = Handle;
@@ -368,8 +368,8 @@ GranterPut(
 
 ULONG
 GranterReference(
-    IN  PXENVBD_GRANTER     Granter,
-    IN  PVOID               Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Handle
     )
 {
     PXENBUS_GNTTAB_ENTRY    Entry = Handle;
diff --git a/src/xenvbd/granter.h b/src/xenvbd/granter.h
index afe41d5..c59e65d 100644
--- a/src/xenvbd/granter.h
+++ b/src/xenvbd/granter.h
@@ -41,59 +41,59 @@ typedef struct _XENVBD_GRANTER XENVBD_GRANTER, 
*PXENVBD_GRANTER;
 
 extern NTSTATUS
 GranterCreate(
-    IN  PXENVBD_FRONTEND    Frontend,
-    OUT PXENVBD_GRANTER     *Granter
+    _In_ PXENVBD_FRONTEND       Frontend,
+    _Outptr_ PXENVBD_GRANTER    *Granter
     );
 
 extern VOID
 GranterDestroy(
-    IN  PXENVBD_GRANTER     Granter
+    _In_ PXENVBD_GRANTER    Granter
     );
 
 extern NTSTATUS
 GranterConnect(
-    IN  PXENVBD_GRANTER     Granter
+    _In_ PXENVBD_GRANTER    Granter
     );
 
 extern NTSTATUS
 GranterStoreWrite(
-    IN  PXENVBD_GRANTER Granter,
-    IN  PVOID           Transaction
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Transaction
     );
 
 extern VOID
 GranterEnable(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     );
 
 extern VOID
 GranterDisable(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     );
 
 extern VOID
 GranterDisconnect(
-    IN  PXENVBD_GRANTER Granter
+    _In_ PXENVBD_GRANTER    Granter
     );
 
 extern NTSTATUS
 GranterGet(
-    IN  PXENVBD_GRANTER Granter,
-    IN  PFN_NUMBER      Pfn,
-    IN  BOOLEAN         ReadOnly,
-    OUT PVOID           *Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PFN_NUMBER         Pfn,
+    _In_ BOOLEAN            ReadOnly,
+    _Outptr_ PVOID          *Handle
     );
 
 extern VOID
 GranterPut(
-    IN  PXENVBD_GRANTER Granter,
-    IN  PVOID           Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Handle
     );
 
 extern ULONG
 GranterReference(
-    IN  PXENVBD_GRANTER Granter,
-    IN  PVOID           Handle
+    _In_ PXENVBD_GRANTER    Granter,
+    _In_ PVOID              Handle
     );
 
 #endif // _XENVBD_GRANTER_H
diff --git a/src/xenvbd/registry.c b/src/xenvbd/registry.c
index 2275463..63498ba 100644
--- a/src/xenvbd/registry.c
+++ b/src/xenvbd/registry.c
@@ -47,7 +47,7 @@ static IOOPENDRIVERREGISTRYKEY __IoOpenDriverRegistryKey;
 
 static FORCEINLINE PVOID
 __RegistryAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, REGISTRY_TAG);
@@ -55,7 +55,7 @@ __RegistryAllocate(
 
 static FORCEINLINE VOID
 __RegistryFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, REGISTRY_TAG);
@@ -64,13 +64,13 @@ __RegistryFree(
 NTSTATUS
 #pragma prefast(suppress:28101) // unannotated DriverEntry function
 RegistryInitialize(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PUNICODE_STRING Path
+    _In_ PDRIVER_OBJECT     DriverObject,
+    _In_ PUNICODE_STRING    Path
     )
 {
-    UNICODE_STRING      Unicode;
-    PVOID               Func;
-    NTSTATUS            status;
+    UNICODE_STRING          Unicode;
+    PVOID                   Func;
+    NTSTATUS                status;
 
     ASSERT3P(RegistryPath.Buffer, ==, NULL);
 
@@ -110,17 +110,17 @@ RegistryTeardown(
     RegistryPath.MaximumLength = RegistryPath.Length = 0;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     )
 {
-    OBJECT_ATTRIBUTES   Attributes;
-    NTSTATUS            status;
+    OBJECT_ATTRIBUTES       Attributes;
+    NTSTATUS                status;
 
     InitializeObjectAttributes(&Attributes,
                                Path,
@@ -140,12 +140,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 RegistryOpenRoot(
-    IN  PWCHAR          Path,
-    OUT PHANDLE         Parent,
-    OUT PWCHAR          *ChildPath
+    _In_ PWCHAR         Path,
+    _Out_ PHANDLE       Parent,
+    _Outptr_ PWCHAR     *ChildPath
     )
 {
     const WCHAR         Prefix[] = L"\\Registry\\Machine\\";
@@ -174,22 +174,22 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryCreateKey(
-    IN  HANDLE          Root,
-    IN  PUNICODE_STRING Path,
-    IN  ULONG           Options,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Root,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ULONG              Options,
+    _Out_ PHANDLE           Key
     )
 {
-    PWCHAR              Buffer;
-    HANDLE              Parent;
-    PWCHAR              ChildPath;
-    PWCHAR              ChildName;
-    PWCHAR              Context;
-    HANDLE              Child;
-    NTSTATUS            status;
+    PWCHAR                  Buffer;
+    HANDLE                  Parent;
+    PWCHAR                  ChildPath;
+    PWCHAR                  ChildName;
+    PWCHAR                  Context;
+    HANDLE                  Child;
+    NTSTATUS                status;
 
     //
     // UNICODE_STRINGs are not guaranteed to have NUL terminated
@@ -274,30 +274,30 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenServiceKey(
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     )
 {
     return RegistryOpenKey(NULL, &RegistryPath, DesiredAccess, Key);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryCreateServiceKey(
-    OUT PHANDLE         Key
+    _Out_ PHANDLE   Key
     )
 {
     return RegistryCreateKey(NULL, &RegistryPath, REG_OPTION_NON_VOLATILE, 
Key);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenParametersKey(
-    IN  ACCESS_MASK DesiredAccess,
-    OUT PHANDLE     Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     )
 {
     HANDLE              ServiceKey;
@@ -342,12 +342,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenSoftwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     )
 {
     NTSTATUS            status;
@@ -365,12 +365,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenHardwareKey(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  ACCESS_MASK         DesiredAccess,
-    OUT PHANDLE             Key
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     )
 {
     HANDLE                  SubKey;
@@ -443,13 +443,13 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryOpenSubKey(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         SubKey
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       SubKey
     )
 {
     ANSI_STRING         Ansi;
@@ -477,13 +477,13 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryCreateSubKey(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name,
-    IN  ULONG           Options,
-    OUT PHANDLE         SubKey
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name,
+    _In_ ULONG          Options,
+    _Out_ PHANDLE       SubKey
     )
 {
     ANSI_STRING         Ansi;
@@ -511,11 +511,11 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryDeleteSubKey(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name
     )
 {
     ANSI_STRING         Ansi;
@@ -555,12 +555,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryEnumerateSubKeys(
-    IN  HANDLE              Key,
-    IN  NTSTATUS            (*Callback)(PVOID, HANDLE, PANSI_STRING),
-    IN  PVOID               Context
+    _In_ HANDLE             Key,
+    _In_ NTSTATUS           (*Callback)(PVOID, HANDLE, PANSI_STRING),
+    _In_ PVOID              Context
     )
 {
     ULONG                   Size;
@@ -660,12 +660,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryEnumerateValues(
-    IN  HANDLE                      Key,
-    IN  NTSTATUS                    (*Callback)(PVOID, HANDLE, PANSI_STRING, 
ULONG),
-    IN  PVOID                       Context
+    _In_ HANDLE                     Key,
+    _In_ NTSTATUS                   (*Callback)(PVOID, HANDLE, PANSI_STRING, 
ULONG),
+    _In_ PVOID                      Context
     )
 {
     ULONG                           Size;
@@ -759,11 +759,11 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryDeleteValue(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name
     )
 {
     ANSI_STRING         Ansi;
@@ -793,12 +793,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryQueryDwordValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PULONG                      Value
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Out_ PULONG                    Value
     )
 {
     ANSI_STRING                     Ansi;
@@ -864,12 +864,12 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryUpdateDwordValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  ULONG                       Value
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ ULONG                      Value
     )
 {
     ANSI_STRING                     Ansi;
@@ -923,10 +923,10 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static PANSI_STRING
 RegistrySzToAnsi(
-    IN  PWCHAR      Buffer
+    _In_ PWCHAR     Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -963,10 +963,10 @@ fail1:
     return NULL;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static PANSI_STRING
 RegistryMultiSzToAnsi(
-    IN  PWCHAR      Buffer
+    _In_ PWCHAR     Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -1026,13 +1026,13 @@ fail1:
     return NULL;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryQuerySzValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PULONG                      Type OPTIONAL,
-    OUT PANSI_STRING                *Array
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Out_opt_ PULONG                Type,
+    _Outptr_ PANSI_STRING           *Array
     )
 {
     ANSI_STRING                     Ansi;
@@ -1114,13 +1114,13 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryQueryBinaryValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PVOID                       *Buffer,
-    OUT PULONG                      Length
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Outptr_ PVOID                  *Buffer,
+    _Out_ PULONG                    Length
     )
 {
     ANSI_STRING                     Ansi;
@@ -1200,13 +1200,13 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryUpdateBinaryValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  PVOID                       Buffer,
-    IN  ULONG                       Length
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ PVOID                      Buffer,
+    _In_ ULONG                      Length
     )
 {
     ANSI_STRING                     Ansi;
@@ -1260,11 +1260,11 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryQueryKeyName(
-    IN  HANDLE              Key,
-    OUT PANSI_STRING        *Array
+    _In_ HANDLE             Key,
+    _Outptr_ PANSI_STRING   *Array
     )
 {
     PKEY_NAME_INFORMATION   Value;
@@ -1316,11 +1316,11 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryQuerySystemStartOption(
-    IN  const CHAR                  *Prefix,
-    OUT PANSI_STRING                *Value
+    _In_ const CHAR                 *Prefix,
+    _Outptr_ PANSI_STRING           *Value
     )
 {
     UNICODE_STRING                  Unicode;
@@ -1395,7 +1395,7 @@ fail1:
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static PKEY_VALUE_PARTIAL_INFORMATION
 RegistryAnsiToSz(
     PANSI_STRING                    Ansi
@@ -1442,7 +1442,7 @@ fail1:
     return NULL;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static PKEY_VALUE_PARTIAL_INFORMATION
 RegistryAnsiToMultiSz(
     PANSI_STRING                    Ansi
@@ -1502,13 +1502,13 @@ fail1:
     return NULL;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 RegistryUpdateSzValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  ULONG                       Type,
-    IN  PANSI_STRING                Array
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ ULONG                      Type,
+    _In_ PANSI_STRING               Array
     )
 {
     ANSI_STRING                     Ansi;
@@ -1571,7 +1571,7 @@ fail1:
 
 VOID
 RegistryFreeSzValue(
-    IN  PANSI_STRING    Array
+    _In_ PANSI_STRING   Array
     )
 {
     ULONG               Index;
@@ -1587,16 +1587,16 @@ RegistryFreeSzValue(
 
 VOID
 RegistryFreeBinaryValue(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __RegistryFree(Buffer);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 VOID
 RegistryCloseKey(
-    IN  HANDLE  Key
+    _In_ HANDLE Key
     )
 {
     ZwClose(Key);
diff --git a/src/xenvbd/registry.h b/src/xenvbd/registry.h
index 8dac63e..3b463c5 100644
--- a/src/xenvbd/registry.h
+++ b/src/xenvbd/registry.h
@@ -37,8 +37,8 @@
 
 extern NTSTATUS
 RegistryInitialize(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PUNICODE_STRING Path
+    _In_ PDRIVER_OBJECT     DriverObject,
+    _In_ PUNICODE_STRING    Path
     );
 
 extern VOID
@@ -46,188 +46,188 @@ RegistryTeardown(
     VOID
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryCreateKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ULONG           Options,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ULONG              Options,
+    _Out_ PHANDLE           Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenServiceKey(
-    IN  ACCESS_MASK DesiredAccess,
-    OUT PHANDLE     Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryCreateServiceKey(
-    OUT PHANDLE     Key
+    _Out_ PHANDLE   Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenParametersKey(
-    IN  ACCESS_MASK DesiredAccess,
-    OUT PHANDLE     Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenSoftwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenHardwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryOpenSubKey(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name,
-    IN  ACCESS_MASK DesiredAccess,
-    OUT PHANDLE     SubKey
+    _In_ HANDLE         Key,
+    _In_ PCHAR          Name,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       SubKey
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryCreateSubKey(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name,
-    IN  ULONG       Options,
-    OUT PHANDLE     SubKey
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _In_ ULONG      Options,
+    _Out_ PHANDLE   SubKey
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryDeleteSubKey(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryEnumerateSubKeys(
-    IN  HANDLE      Key,
-    IN  NTSTATUS    (*Callback)(PVOID, HANDLE, PANSI_STRING),
-    IN  PVOID       Context
+    _In_ HANDLE     Key,
+    _In_ NTSTATUS   (*Callback)(PVOID, HANDLE, PANSI_STRING),
+    _In_ PVOID      Context
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryEnumerateValues(
-    IN  HANDLE      Key,
-    IN  NTSTATUS    (*Callback)(PVOID, HANDLE, PANSI_STRING, ULONG),
-    IN  PVOID       Context
+    _In_ HANDLE     Key,
+    _In_ NTSTATUS   (*Callback)(PVOID, HANDLE, PANSI_STRING, ULONG),
+    _In_ PVOID      Context
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryDeleteValue(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryQueryDwordValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PULONG          Value
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _Out_ PULONG    Value
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryUpdateDwordValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  ULONG           Value
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name,
+    _In_ ULONG  Value
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryQuerySzValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PULONG          Type OPTIONAL,
-    OUT PANSI_STRING    *Array
+    _In_ HANDLE             Key,
+    _In_ PCHAR              Name,
+    _Out_opt_ PULONG        Type,
+    _Outptr_ PANSI_STRING   *Array
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryQueryBinaryValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PVOID           *Buffer,
-    OUT PULONG          Length
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _Outptr_ PVOID  *Buffer,
+    _Out_ PULONG    Length
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryUpdateBinaryValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  PVOID           Buffer,
-    IN  ULONG           Length
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name,
+    _In_ PVOID  Buffer,
+    _In_ ULONG  Length
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryQueryKeyName(
-    IN  HANDLE              Key,
-    OUT PANSI_STRING        *Array
+    _In_ HANDLE             Key,
+    _Outptr_ PANSI_STRING   *Array
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryQuerySystemStartOption(
-    IN  const CHAR      *Prefix,
-    OUT PANSI_STRING    *Option
+    _In_ const CHAR         *Prefix,
+    _Outptr_ PANSI_STRING   *Option
     );
 
 extern VOID
 RegistryFreeSzValue(
-    IN  PANSI_STRING    Array
+    _In_ PANSI_STRING   Array
     );
 
 extern VOID
 RegistryFreeBinaryValue(
-    IN  PVOID           Buffer
+    _In_ PVOID  Buffer
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 RegistryUpdateSzValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  ULONG           Type,
-    IN  PANSI_STRING    Array
+    _In_ HANDLE         Key,
+    _In_ PCHAR          Name,
+    _In_ ULONG          Type,
+    _In_ PANSI_STRING   Array
     );
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern VOID
 RegistryCloseKey(
-    IN  HANDLE  Key
+    _In_ HANDLE Key
     );
 
 #endif  // _XENVBD_REGISTRY_H
diff --git a/src/xenvbd/ring.c b/src/xenvbd/ring.c
index 0875ce9..3f602ee 100644
--- a/src/xenvbd/ring.c
+++ b/src/xenvbd/ring.c
@@ -130,7 +130,7 @@ struct _XENVBD_RING {
 
 static FORCEINLINE PVOID
 __RingAllocate(
-    IN  ULONG                       Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool,
@@ -140,7 +140,7 @@ __RingAllocate(
 
 static FORCEINLINE VOID
 __RingFree(
-    IN  PVOID                       Buffer
+    _In_ PVOID  Buffer
     )
 {
     if (Buffer)
@@ -150,7 +150,7 @@ __RingFree(
 
 static FORCEINLINE PCHAR
 __BlkifOperationName(
-    IN  UCHAR   Operation
+    _In_ UCHAR  Operation
     )
 {
     switch (Operation) {
@@ -167,7 +167,7 @@ __BlkifOperationName(
 
 static FORCEINLINE PCHAR
 __StatName(
-    IN  XENVBD_STAT Operation
+    _In_ XENVBD_STAT    Operation
     )
 {
     switch (Operation) {
@@ -186,9 +186,9 @@ __StatName(
 
 static FORCEINLINE VOID
 __Operation(
-    IN  UCHAR       CdbOp,
-    OUT PUCHAR      RingOp,
-    OUT PBOOLEAN    ReadOnly
+    _In_ UCHAR      CdbOp,
+    _Out_ PUCHAR    RingOp,
+    _Out_ PBOOLEAN  ReadOnly
     )
 {
     switch (CdbOp) {
@@ -207,8 +207,8 @@ __Operation(
 
 static FORCEINLINE ULONG
 __UseIndirect(
-    IN  ULONG           MaxIndirectSegs,
-    IN  ULONG           SectorsLeft
+    _In_ ULONG  MaxIndirectSegs,
+    _In_ ULONG  SectorsLeft
     )
 {
     if (MaxIndirectSegs <= BLKIF_MAX_SEGMENTS_PER_REQUEST)
@@ -222,7 +222,7 @@ __UseIndirect(
 
 static FORCEINLINE MM_PAGE_PRIORITY
 __Priority(
-    IN  PXENVBD_CAPS    Caps
+    _In_ PXENVBD_CAPS   Caps
     )
 {
     return (Caps->Paging ||
@@ -233,7 +233,7 @@ __Priority(
 
 static PXENVBD_INDIRECT
 BlkifRingGetIndirect(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -272,8 +272,8 @@ fail1:
 
 static VOID
 BlkifRingPutIndirect(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_INDIRECT    Indirect
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_INDIRECT   Indirect
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -295,7 +295,7 @@ BlkifRingPutIndirect(
 
 static PXENVBD_SEGMENT
 BlkifRingGetSegment(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -308,8 +308,8 @@ BlkifRingGetSegment(
 
 static VOID
 BlkifRingPutSegment(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SEGMENT     Segment
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SEGMENT    Segment
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -349,7 +349,7 @@ BlkifRingPutSegment(
 
 static PXENVBD_REQUEST
 BlkifRingGetRequest(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -362,8 +362,8 @@ BlkifRingGetRequest(
 
 static VOID
 BlkifRingPutRequest(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_REQUEST     Request
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_REQUEST    Request
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -406,8 +406,8 @@ BlkifRingPutRequest(
 
 static DECLSPEC_NOINLINE NTSTATUS
 BlkifRingRequestCtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID      Argument,
+    _In_ PVOID      Object
     )
 {
     PXENVBD_REQUEST Request = Object;
@@ -421,8 +421,8 @@ BlkifRingRequestCtor(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingRequestDtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID  Argument,
+    _In_ PVOID  Object
     )
 {
     UNREFERENCED_PARAMETER(Argument);
@@ -431,8 +431,8 @@ BlkifRingRequestDtor(
 
 static DECLSPEC_NOINLINE NTSTATUS
 BlkifRingSegmentCtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID  Argument,
+    _In_ PVOID  Object
     )
 {
     UNREFERENCED_PARAMETER(Argument);
@@ -442,8 +442,8 @@ BlkifRingSegmentCtor(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingSegmentDtor(
-    IN  PVOID       Argument,
-    IN  PVOID       Object
+    _In_ PVOID  Argument,
+    _In_ PVOID  Object
     )
 {
     UNREFERENCED_PARAMETER(Argument);
@@ -452,8 +452,8 @@ BlkifRingSegmentDtor(
 
 static DECLSPEC_NOINLINE NTSTATUS
 BlkifRingIndirectCtor(
-    IN  PVOID           Argument,
-    IN  PVOID           Object
+    _In_ PVOID          Argument,
+    _In_ PVOID          Object
     )
 {
     PXENVBD_INDIRECT    Indirect = Object;
@@ -479,8 +479,8 @@ fail1:
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingIndirectDtor(
-    IN  PVOID           Argument,
-    IN  PVOID           Object
+    _In_ PVOID          Argument,
+    _In_ PVOID          Object
     )
 {
     PXENVBD_INDIRECT    Indirect = Object;
@@ -494,8 +494,8 @@ BlkifRingIndirectDtor(
 
 static VOID
 BlkifRingDebugCallback(
-    IN  PVOID           Argument,
-    IN  BOOLEAN         Crashing
+    _In_ PVOID          Argument,
+    _In_ BOOLEAN        Crashing
     )
 {
     PXENVBD_BLKIF_RING  BlkifRing = Argument;
@@ -550,8 +550,8 @@ BlkifRingDebugCallback(
 
 static DECLSPEC_NOINLINE VOID
 __BlkifRingCompleteSrb(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -577,8 +577,8 @@ __BlkifRingCompleteSrb(
 
 static FORCEINLINE VOID
 BlkifRingUnprepareRequest(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PLIST_ENTRY         List
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PLIST_ENTRY        List
     )
 {
     for (;;) {
@@ -599,8 +599,8 @@ BlkifRingUnprepareRequest(
 
 static FORCEINLINE VOID
 BlkifRingQueueRequests(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PLIST_ENTRY         List
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PLIST_ENTRY        List
     )
 {
     for (;;) {
@@ -621,12 +621,12 @@ BlkifRingQueueRequests(
 
 static BOOLEAN
 BlkifRingPrepareSegment(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SEGMENT     Segment,
-    IN  PXENVBD_SRBEXT      SrbExt,
-    IN  BOOLEAN             ReadOnly,
-    IN  ULONG               SectorsLeft,
-    OUT PULONG              SectorsNow
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SEGMENT    Segment,
+    _In_ PXENVBD_SRBEXT     SrbExt,
+    _In_ BOOLEAN            ReadOnly,
+    _In_ ULONG              SectorsLeft,
+    _Out_ PULONG            SectorsNow
     )
 {
     PFN_NUMBER              Pfn;
@@ -738,8 +738,8 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareReadWrite(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -841,8 +841,8 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareUnmap(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -899,8 +899,8 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareSyncCache(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -943,8 +943,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 __BlkifRingPrepareSrb(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     switch (Cdb_OperationEx(SrbExt->Srb)) {
@@ -969,9 +969,9 @@ __BlkifRingPrepareSrb(
 
 static FORCEINLINE VOID
 __BlkifRingInsertRequest(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_REQUEST     Request,
-    IN  blkif_request_t     *req
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_REQUEST    Request,
+    _In_ blkif_request_t    *req
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -1081,7 +1081,7 @@ __BlkifRingInsertRequest(
 
 static FORCEINLINE NTSTATUS
 __BlkifRingPostRequests(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     for (;;) {
@@ -1118,8 +1118,8 @@ __BlkifRingPostRequests(
 
 static FORCEINLINE PXENVBD_REQUEST
 __BlkifRingGetSubmittedRequest(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  ULONG64             Id
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ ULONG64            Id
     )
 {
     PLIST_ENTRY             ListEntry;
@@ -1142,9 +1142,9 @@ __BlkifRingGetSubmittedRequest(
 
 static FORCEINLINE VOID
 __BlkifRingCompleteResponse(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_REQUEST     Request,
-    IN  SHORT               Status
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_REQUEST    Request,
+    _In_ SHORT              Status
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -1211,7 +1211,7 @@ __BlkifRingCompleteResponse(
 
 static FORCEINLINE BOOLEAN
 BlkifRingPoll(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
 #define XENVBD_BATCH(_Ring) (RING_SIZE(&(_Ring)->Front) / 4)
@@ -1275,7 +1275,7 @@ done:
 
 static FORCEINLINE VOID
 __BlkifRingSend(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -1287,7 +1287,7 @@ __BlkifRingSend(
 
 static FORCEINLINE VOID
 __BlkifRingPushRequests(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     BOOLEAN                 Notify;
@@ -1313,7 +1313,7 @@ __BlkifRingPushRequests(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingSwizzle(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ULONG_PTR               Old;
@@ -1410,7 +1410,7 @@ __BlkifRingAbortQueues(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingSchedule(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     BOOLEAN                 Polled;
@@ -1493,9 +1493,9 @@ BlkifRingSchedule(
 }
 
 static FORCEINLINE BOOLEAN
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingTryAcquireLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ULONG_PTR               Old;
@@ -1522,9 +1522,9 @@ __BlkifRingTryAcquireLock(
 }
 
 static FORCEINLINE VOID
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingAcquireLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1539,16 +1539,16 @@ __BlkifRingAcquireLock(
 
 static VOID
 BlkifRingAcquireLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     __BlkifRingAcquireLock(BlkifRing);
 }
 
 static FORCEINLINE BOOLEAN
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingTryReleaseLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ULONG_PTR               Old;
@@ -1582,9 +1582,9 @@ __BlkifRingTryReleaseLock(
 }
 
 static FORCEINLINE VOID
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingReleaseLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1602,7 +1602,7 @@ __BlkifRingReleaseLock(
 
 static VOID
 BlkifRingReleaseLock(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     __BlkifRingReleaseLock(BlkifRing);
@@ -1612,8 +1612,8 @@ KSERVICE_ROUTINE    BlkifRingInterrupt;
 
 BOOLEAN
 BlkifRingInterrupt(
-    IN  PKINTERRUPT     InterruptObject,
-    IN  PVOID           Argument
+    _In_ PKINTERRUPT    InterruptObject,
+    _In_ PVOID          Argument
     )
 {
     PXENVBD_BLKIF_RING  BlkifRing = Argument;
@@ -1630,16 +1630,16 @@ BlkifRingInterrupt(
     return TRUE;
 }
 
-__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
 BlkifRingDpc(
-    IN  PKDPC           Dpc,
-    IN  PVOID           Context,
-    IN  PVOID           Argument1,
-    IN  PVOID           Argument2
+    _In_ PKDPC          Dpc,
+    _In_ PVOID          Context,
+    _In_ PVOID          Argument1,
+    _In_ PVOID          Argument2
     )
 {
     PXENVBD_BLKIF_RING  BlkifRing = Context;
@@ -1686,8 +1686,8 @@ BlkifRingDpc(
 
 static NTSTATUS
 RingWatchdog(
-    IN  PXENVBD_THREAD  Self,
-    IN  PVOID           Context
+    _In_ PXENVBD_THREAD Self,
+    _In_ PVOID          Context
     )
 {
     PXENVBD_BLKIF_RING  BlkifRing = Context;
@@ -1759,7 +1759,7 @@ RingWatchdog(
 
 static FORCEINLINE NTSTATUS
 BlkifRingCacheCreate(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring;
@@ -1874,7 +1874,7 @@ fail1:
 
 static FORCEINLINE VOID
 BlkifRingCacheDestroy(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring;
@@ -1899,15 +1899,15 @@ BlkifRingCacheDestroy(
 
 static NTSTATUS
 BlkifRingCreate(
-    IN  PXENVBD_RING        Ring,
-    IN  ULONG               Index,
-    OUT PXENVBD_BLKIF_RING* BlkifRing
+    _In_ PXENVBD_RING           Ring,
+    _In_ ULONG                  Index,
+    _Outptr_ PXENVBD_BLKIF_RING *BlkifRing
     )
 {
-    PXENVBD_FRONTEND        Frontend;
-    ULONG                   Length;
-    PCHAR                   Path;
-    NTSTATUS                status;
+    PXENVBD_FRONTEND            Frontend;
+    ULONG                       Length;
+    PCHAR                       Path;
+    NTSTATUS                    status;
 
     Frontend = Ring->Frontend;
 
@@ -1984,7 +1984,7 @@ fail1:
 
 static VOID
 BlkifRingDestroy(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     ThreadAlert(BlkifRing->WatchdogThread);
@@ -2020,7 +2020,7 @@ BlkifRingDestroy(
 
 static NTSTATUS
 BlkifRingConnect(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -2147,8 +2147,8 @@ fail1:
 
 static NTSTATUS
 BlkifRingStoreWrite(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PVOID               Transaction
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PVOID              Transaction
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -2219,7 +2219,7 @@ fail1:
 
 static VOID
 BlkifRingEnable(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     Trace("====> %u\n", BlkifRing->Index);
@@ -2235,7 +2235,7 @@ BlkifRingEnable(
 
 static VOID
 BlkifRingDisable(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring;
@@ -2330,7 +2330,7 @@ BlkifRingDisable(
 
 static VOID
 BlkifRingDisconnect(
-    IN  PXENVBD_BLKIF_RING  BlkifRing
+    _In_ PXENVBD_BLKIF_RING BlkifRing
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -2380,8 +2380,8 @@ BlkifRingDisconnect(
 
 static BOOLEAN
 __BlkifRingQueueSrb(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     PLIST_ENTRY             ListEntry;
@@ -2423,8 +2423,8 @@ fail1:
 
 static BOOLEAN
 __BlkifRingQueueShutdown(
-    IN  PXENVBD_BLKIF_RING  BlkifRing,
-    IN  PXENVBD_SRBEXT      SrbExt
+    _In_ PXENVBD_BLKIF_RING BlkifRing,
+    _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
     if (!BlkifRing->Enabled)
@@ -2445,8 +2445,8 @@ fail1:
 
 static DECLSPEC_NOINLINE VOID
 RingDebugCallback(
-    IN  PVOID       Argument,
-    IN  BOOLEAN     Crashing
+    _In_ PVOID      Argument,
+    _In_ BOOLEAN    Crashing
     )
 {
     PXENVBD_RING    Ring = Argument;
@@ -2470,8 +2470,8 @@ RingDebugCallback(
 
 NTSTATUS
 RingCreate(
-    IN  PXENVBD_FRONTEND    Frontend,
-    OUT PXENVBD_RING*       Ring
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Outptr_ PXENVBD_RING   *Ring
     )
 {
     PXENVBD_TARGET          Target = FrontendGetTarget(Frontend);
@@ -2559,7 +2559,7 @@ fail1:
 
 VOID
 RingDestroy(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     LONG                Index;
@@ -2599,7 +2599,7 @@ RingDestroy(
 
 NTSTATUS
 RingConnect(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     LONG                MaxQueues;
@@ -2708,8 +2708,8 @@ fail1:
 
 NTSTATUS
 RingStoreWrite(
-    IN  PXENVBD_RING    Ring,
-    IN  PVOID           Transaction
+    _In_ PXENVBD_RING   Ring,
+    _In_ PVOID          Transaction
     )
 {
     ULONG               NumQueues;
@@ -2770,7 +2770,7 @@ fail1:
 
 VOID
 RingEnable(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     ULONG               NumQueues;
@@ -2789,7 +2789,7 @@ RingEnable(
 
 VOID
 RingDisable(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     LONG                Index;
@@ -2804,7 +2804,7 @@ RingDisable(
 
 VOID
 RingDisconnect(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     LONG                Index;
@@ -2831,7 +2831,7 @@ RingDisconnect(
 
 BOOLEAN
 RingIsPoisoned(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     )
 {
     ULONG               NumQueues;
@@ -2851,8 +2851,8 @@ RingIsPoisoned(
 
 static FORCEINLINE PXENVBD_BLKIF_RING
 __RingGetBlkifRing(
-    IN  PXENVBD_RING    Ring,
-    IN  ULONG           Tag
+    _In_ PXENVBD_RING   Ring,
+    _In_ ULONG          Tag
     )
 {
     ULONG               Value;
@@ -2870,8 +2870,8 @@ __RingGetBlkifRing(
 
 BOOLEAN
 RingQueueRequest(
-    IN  PXENVBD_RING    Ring,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_RING   Ring,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb;
@@ -2885,8 +2885,8 @@ RingQueueRequest(
 
 BOOLEAN
 RingQueueShutdown(
-    IN  PXENVBD_RING    Ring,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_RING   Ring,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb;
diff --git a/src/xenvbd/ring.h b/src/xenvbd/ring.h
index 5644c7c..bcf52f8 100644
--- a/src/xenvbd/ring.h
+++ b/src/xenvbd/ring.h
@@ -40,56 +40,56 @@ typedef struct _XENVBD_RING XENVBD_RING, *PXENVBD_RING;
 
 extern NTSTATUS
 RingCreate(
-    IN  PXENVBD_FRONTEND    Frontend,
-    OUT PXENVBD_RING*       Ring
+    _In_ PXENVBD_FRONTEND   Frontend,
+    _Outptr_ PXENVBD_RING   *Ring
     );
 
 extern VOID
 RingDestroy(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern NTSTATUS
 RingConnect(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern NTSTATUS
 RingStoreWrite(
-    IN  PXENVBD_RING    Ring,
-    IN  PVOID           Transaction
+    _In_ PXENVBD_RING   Ring,
+    _In_ PVOID          Transaction
     );
 
 extern VOID
 RingEnable(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern VOID
 RingDisable(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern VOID
 RingDisconnect(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern BOOLEAN
 RingIsPoisoned(
-    IN  PXENVBD_RING    Ring
+    _In_ PXENVBD_RING   Ring
     );
 
 extern BOOLEAN
 RingQueueRequest(
-    IN  PXENVBD_RING    Ring,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_RING   Ring,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 extern BOOLEAN
 RingQueueShutdown(
-    IN  PXENVBD_RING    Ring,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_RING   Ring,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 #endif // _XENVBD_RING_H
diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c
index ce688f5..01b2e32 100644
--- a/src/xenvbd/target.c
+++ b/src/xenvbd/target.c
@@ -76,13 +76,13 @@ struct _XENVBD_TARGET {
 
 #define TARGET_POOL_TAG            'odPX'
 
-__checkReturn
+_Check_return_
 __drv_allocatesMem(mem)
-__bcount(Size)
+_Writable_bytes_(Size)
 static FORCEINLINE PVOID
 #pragma warning(suppress: 28195)
 __TargetAlloc(
-    __in ULONG  Size
+    _In_ ULONG  Size
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Size, TARGET_POOL_TAG);
@@ -91,7 +91,7 @@ __TargetAlloc(
 static FORCEINLINE VOID
 #pragma warning(suppress: 28197)
 __TargetFree(
-    __in __drv_freesMem(mem) PVOID Buffer
+    _In_ __drv_freesMem(mem) PVOID  Buffer
     )
 {
     if (Buffer)
@@ -100,7 +100,7 @@ __TargetFree(
 
 static FORCEINLINE PCHAR
 __PnpStateName(
-    __in DEVICE_PNP_STATE        State
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     switch (State) {
@@ -118,15 +118,15 @@ __PnpStateName(
     }
 }
 
-__checkReturn
+_Check_return_
 static FORCEINLINE BOOLEAN
 TargetSetDevicePowerState(
-    __in PXENVBD_TARGET             Target,
-    __in DEVICE_POWER_STATE      State
+    _In_ PXENVBD_TARGET     Target,
+    _In_ DEVICE_POWER_STATE State
     )
 {
-    KIRQL       Irql;
-    BOOLEAN     Changed = FALSE;
+    KIRQL                   Irql;
+    BOOLEAN                 Changed = FALSE;
 
     KeAcquireSpinLock(&Target->Lock, &Irql);
     if (Target->DevicePowerState != State) {
@@ -141,8 +141,8 @@ TargetSetDevicePowerState(
 
 VOID
 TargetSetMissing(
-    IN  PXENVBD_TARGET  Target,
-    IN  const CHAR      *Reason
+    _In_ PXENVBD_TARGET Target,
+    _In_ const CHAR     *Reason
     )
 {
     KIRQL               Irql;
@@ -167,8 +167,8 @@ TargetSetMissing(
 
 VOID
 TargetSetDevicePnpState(
-    IN  PXENVBD_TARGET      Target,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVBD_TARGET     Target,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     Verbose("Target[%d] : PNP %s to %s\n",
@@ -185,8 +185,8 @@ TargetSetDevicePnpState(
 
 static FORCEINLINE VOID
 __TargetRestoreDevicePnpState(
-    __in PXENVBD_TARGET             Target,
-    __in DEVICE_PNP_STATE        State
+    _In_ PXENVBD_TARGET     Target,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     if (Target->DevicePnpState == State) {
@@ -197,8 +197,8 @@ __TargetRestoreDevicePnpState(
 
 VOID
 TargetSetDeviceObject(
-    IN  PXENVBD_TARGET  Target,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PXENVBD_TARGET Target,
+    _In_ PDEVICE_OBJECT DeviceObject
     )
 {
     Verbose("Target[%d] : Setting DeviceObject = 0x%p\n",
@@ -211,14 +211,14 @@ TargetSetDeviceObject(
 
 static DECLSPEC_NOINLINE BOOLEAN
 TargetReadWrite(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    PXENVBD_FRONTEND        Frontend = Target->Frontend;
-    PXENVBD_RING            Ring = FrontendGetRing(Frontend);
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Frontend);
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    PXENVBD_FRONTEND            Frontend = Target->Frontend;
+    PXENVBD_RING                Ring = FrontendGetRing(Frontend);
+    PXENVBD_DISKINFO            DiskInfo = FrontendGetDiskInfo(Frontend);
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
     if (!FrontendGetCaps(Frontend)->Connected)
@@ -249,14 +249,14 @@ fail1:
 
 static DECLSPEC_NOINLINE BOOLEAN
 TargetSyncCache(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    PXENVBD_FRONTEND        Frontend = Target->Frontend;
-    PXENVBD_RING            Ring = FrontendGetRing(Frontend);
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Frontend);
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    PXENVBD_FRONTEND            Frontend = Target->Frontend;
+    PXENVBD_RING                Ring = FrontendGetRing(Frontend);
+    PXENVBD_DISKINFO            DiskInfo = FrontendGetDiskInfo(Frontend);
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
     if (!FrontendGetCaps(Frontend)->Connected)
@@ -294,13 +294,13 @@ fail1:
 
 static DECLSPEC_NOINLINE BOOLEAN
 TargetUnmap(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_SRBEXT          SrbExt = Srb->SrbExtension;
-    PXENVBD_FRONTEND        Frontend = Target->Frontend;
-    PXENVBD_RING            Ring = FrontendGetRing(Frontend);
+    PXENVBD_SRBEXT              SrbExt = Srb->SrbExtension;
+    PXENVBD_FRONTEND            Frontend = Target->Frontend;
+    PXENVBD_RING                Ring = FrontendGetRing(Frontend);
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
     if (!FrontendGetCaps(Frontend)->Connected)
@@ -330,16 +330,16 @@ fail1:
 
 static FORCEINLINE VOID
 __TargetModeSense(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb,
-    IN  PVOID               Data,
-    IN  ULONG               Length,
-    OUT PULONG              Size,
-    OUT PULONG              ModeDataLength,
-    OUT PULONG              BlockDescrLength
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb,
+    _In_ PVOID                  Data,
+    _In_ ULONG                  Length,
+    _Out_ PULONG                Size,
+    _Out_ PULONG                ModeDataLength,
+    _Out_ PULONG                BlockDescrLength
     )
 {
-    const UCHAR             PageCode = Cdb_PageCode(Srb);
+    const UCHAR                 PageCode = Cdb_PageCode(Srb);
 
     // Fill in Block Parameters (if Specified and space)
     // when the DBD (Disable Block Descriptor) is set, ignore the block page
@@ -385,17 +385,17 @@ __TargetModeSense(
 
 static DECLSPEC_NOINLINE VOID
 TargetModeSense(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_FRONTEND        Frontend = Target->Frontend;
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Frontend);
-    PMODE_PARAMETER_HEADER  Data  = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
-    ULONG                   BlockDescrLength = 0;
-    ULONG                   ModeDataLength = 0;
-    ULONG                   Size;
+    PXENVBD_FRONTEND            Frontend = Target->Frontend;
+    PXENVBD_DISKINFO            DiskInfo = FrontendGetDiskInfo(Frontend);
+    PMODE_PARAMETER_HEADER      Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
+    ULONG                       BlockDescrLength = 0;
+    ULONG                       ModeDataLength = 0;
+    ULONG                       Size;
 
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
@@ -433,13 +433,13 @@ TargetModeSense(
 
 static DECLSPEC_NOINLINE VOID
 TargetModeSense10(
-    IN  PXENVBD_TARGET          Target,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     PXENVBD_FRONTEND            Frontend = Target->Frontend;
     PXENVBD_DISKINFO            DiskInfo = FrontendGetDiskInfo(Frontend);
-    PMODE_PARAMETER_HEADER10    Data  = Srb->DataBuffer;
+    PMODE_PARAMETER_HEADER10    Data = Srb->DataBuffer;
     ULONG                       Length = Srb->DataTransferLength;
     ULONG                       BlockDescrLength = 0;
     ULONG                       ModeDataLength = 0;
@@ -481,12 +481,12 @@ TargetModeSense10(
 
 static DECLSPEC_NOINLINE VOID
 TargetRequestSense(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PSENSE_DATA             Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
+    PSENSE_DATA                 Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
 
     UNREFERENCED_PARAMETER(Target);
 
@@ -511,12 +511,12 @@ TargetRequestSense(
 
 static DECLSPEC_NOINLINE VOID
 TargetReportLuns(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PLUN_LIST               Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
+    PLUN_LIST                   Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
 
     UNREFERENCED_PARAMETER(Target);
 
@@ -540,16 +540,16 @@ TargetReportLuns(
 
 static DECLSPEC_NOINLINE VOID
 TargetReadCapacity(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PREAD_CAPACITY_DATA     Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Target->Frontend);
-    ULONG64                 SectorCount;
-    ULONG                   SectorSize;
-    ULONG                   LastBlock;
+    PREAD_CAPACITY_DATA         Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
+    PXENVBD_DISKINFO            DiskInfo = 
FrontendGetDiskInfo(Target->Frontend);
+    ULONG64                     SectorCount;
+    ULONG                       SectorSize;
+    ULONG                       LastBlock;
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
 
@@ -589,18 +589,18 @@ fail1:
 
 static DECLSPEC_NOINLINE VOID
 TargetReadCapacity16(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PREAD_CAPACITY16_DATA   Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Target->Frontend);
-    ULONG64                 SectorCount;
-    ULONG                   SectorSize;
-    ULONG                   PhysSectorSize;
-    ULONG                   LogicalPerPhysical;
-    ULONG                   LogicalPerPhysicalExponent;
+    PREAD_CAPACITY16_DATA       Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
+    PXENVBD_DISKINFO            DiskInfo = 
FrontendGetDiskInfo(Target->Frontend);
+    ULONG64                     SectorCount;
+    ULONG                       SectorSize;
+    ULONG                       PhysSectorSize;
+    ULONG                       LogicalPerPhysical;
+    ULONG                       LogicalPerPhysicalExponent;
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
 
@@ -646,11 +646,11 @@ fail1:
 
 static DECLSPEC_NOINLINE VOID
 TargetServiceActionIn16(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    UCHAR                   ServiceAction = Cdb_ServiceAction(Srb);
+    UCHAR                       ServiceAction = Cdb_ServiceAction(Srb);
 
     switch (ServiceAction){
     case SERVICE_ACTION_READ_CAPACITY16:
@@ -668,13 +668,13 @@ TargetServiceActionIn16(
 
 static FORCEINLINE VOID
 TargetInquiryStd(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Target->Frontend);
-    PINQUIRYDATA            Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
+    PXENVBD_DISKINFO            DiskInfo = 
FrontendGetDiskInfo(Target->Frontend);
+    PINQUIRYDATA                Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
 
@@ -715,8 +715,8 @@ static const UCHAR SupportedPages[] = {
 
 static FORCEINLINE VOID
 TargetInquiry00(
-    IN  PXENVBD_TARGET          Target,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     PVPD_SUPPORTED_PAGES_PAGE   Data = Srb->DataBuffer;
@@ -745,14 +745,14 @@ TargetInquiry00(
 
 static FORCEINLINE VOID
 TargetInquiry80(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PVPD_SERIAL_NUMBER_PAGE Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
-    PVOID                   Page;
-    ULONG                   Size;
+    PVPD_SERIAL_NUMBER_PAGE     Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
+    PVOID                       Page;
+    ULONG                       Size;
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
 
@@ -789,8 +789,8 @@ TargetInquiry80(
 
 static FORCEINLINE VOID
 TargetInquiry83(
-    IN  PXENVBD_TARGET          Target,
-    IN  PSCSI_REQUEST_BLOCK     Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     PVPD_IDENTIFICATION_PAGE    Data = Srb->DataBuffer;
@@ -840,14 +840,14 @@ TargetInquiry83(
 
 static FORCEINLINE VOID
 TargetInquiryB0(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    PXENVBD_FEATURES        Features = FrontendGetFeatures(Target->Frontend);
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Target->Frontend);
-    PVPD_BLOCK_LIMITS_PAGE  Data = Srb->DataBuffer;
-    ULONG                   Length = Srb->DataTransferLength;
+    PXENVBD_FEATURES            Features = 
FrontendGetFeatures(Target->Frontend);
+    PXENVBD_DISKINFO            DiskInfo = 
FrontendGetDiskInfo(Target->Frontend);
+    PVPD_BLOCK_LIMITS_PAGE      Data = Srb->DataBuffer;
+    ULONG                       Length = Srb->DataTransferLength;
 
     Srb->SrbStatus = SRB_STATUS_ERROR;
 
@@ -884,12 +884,12 @@ TargetInquiryB0(
 
 static FORCEINLINE VOID
 TargetInquiryB1(
-    IN  PXENVBD_TARGET                     Target,
-    IN  PSCSI_REQUEST_BLOCK                Srb
+    _In_ PXENVBD_TARGET                     Target,
+    _In_ PSCSI_REQUEST_BLOCK                Srb
     )
 {
-    PVPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE Data = Srb->DataBuffer;
-    ULONG                                  Length = Srb->DataTransferLength;
+    PVPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE  Data = Srb->DataBuffer;
+    ULONG                                   Length = Srb->DataTransferLength;
 
     UNREFERENCED_PARAMETER(Target);
 
@@ -915,8 +915,8 @@ TargetInquiryB1(
 
 static VOID
 TargetInquiryB2(
-    IN  PXENVBD_TARGET                      Target,
-    IN  PSCSI_REQUEST_BLOCK                 Srb
+    _In_ PXENVBD_TARGET                     Target,
+    _In_ PSCSI_REQUEST_BLOCK                Srb
     )
 {
     PVPD_LOGICAL_BLOCK_PROVISIONING_PAGE    Data = Srb->DataBuffer;
@@ -948,8 +948,8 @@ TargetInquiryB2(
 
 static DECLSPEC_NOINLINE VOID
 TargetInquiry(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
     if (Cdb_EVPD(Srb)) {
@@ -990,11 +990,11 @@ TargetInquiry(
 
 static FORCEINLINE BOOLEAN
 __ValidateSrbForTarget(
-    IN  PXENVBD_TARGET      Target,
-    IN  PSCSI_REQUEST_BLOCK Srb
+    _In_ PXENVBD_TARGET         Target,
+    _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
-    const UCHAR             Operation = Cdb_OperationEx(Srb);
+    const UCHAR                 Operation = Cdb_OperationEx(Srb);
 
     if (Srb->PathId != 0) {
         Error("Target[%d] : Invalid PathId(%d) (%02x:%s)\n",
@@ -1032,8 +1032,8 @@ __ValidateSrbForTarget(
 
 VOID
 TargetPrepareIo(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb;
@@ -1046,8 +1046,8 @@ TargetPrepareIo(
 
 BOOLEAN
 TargetStartIo(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     PSCSI_REQUEST_BLOCK Srb = SrbExt->Srb;
@@ -1125,7 +1125,7 @@ TargetStartIo(
 
 VOID
 TargetReset(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     Verbose("[%u] =====>\n", TargetGetTargetId(Target));
@@ -1137,8 +1137,8 @@ TargetReset(
 
 BOOLEAN
 TargetFlush(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     return RingQueueShutdown(FrontendGetRing(Target->Frontend), SrbExt);
@@ -1146,8 +1146,8 @@ TargetFlush(
 
 BOOLEAN
 TargetShutdown(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     )
 {
     return RingQueueShutdown(FrontendGetRing(Target->Frontend), SrbExt);
@@ -1155,8 +1155,8 @@ TargetShutdown(
 
 VOID
 TargetIssueDeviceEject(
-    IN  PXENVBD_TARGET  Target,
-    IN  const CHAR      *Reason
+    _In_ PXENVBD_TARGET Target,
+    _In_ const CHAR     *Reason
     )
 {
     KIRQL               Irql;
@@ -1193,8 +1193,8 @@ TargetIssueDeviceEject(
 
 static FORCEINLINE VOID
 __TargetDeviceUsageNotification(
-    IN  PXENVBD_TARGET              Target,
-    IN  PIRP                        Irp
+    _In_ PXENVBD_TARGET             Target,
+    _In_ PIRP                       Irp
     )
 {
     PIO_STACK_LOCATION              StackLocation;
@@ -1212,7 +1212,7 @@ __TargetDeviceUsageNotification(
 
 static FORCEINLINE VOID
 __TargetCheckEjectPending(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     KIRQL               Irql;
@@ -1236,7 +1236,7 @@ __TargetCheckEjectPending(
 
 static FORCEINLINE VOID
 __TargetCheckEjectFailed(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     KIRQL               Irql;
@@ -1258,7 +1258,7 @@ __TargetCheckEjectFailed(
 
 static FORCEINLINE VOID
 __TargetRemoveDevice(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     TargetD0ToD3(Target);
@@ -1279,7 +1279,7 @@ __TargetRemoveDevice(
 
 static FORCEINLINE VOID
 __TargetEject(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     TargetSetMissing(Target, "Ejected");
@@ -1289,9 +1289,9 @@ __TargetEject(
 
 NTSTATUS
 TargetDispatchPnp(
-    IN  PXENVBD_TARGET  Target,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_TARGET Target,
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1352,8 +1352,8 @@ TargetDispatchPnp(
 
 static DECLSPEC_NOINLINE VOID
 TargetDebugCallback(
-    IN  PVOID       Argument,
-    IN  BOOLEAN     Crashing
+    _In_ PVOID      Argument,
+    _In_ BOOLEAN    Crashing
     )
 {
     PXENVBD_TARGET  Target = Argument;
@@ -1382,7 +1382,7 @@ TargetDebugCallback(
 
 NTSTATUS
 TargetD3ToD0(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     NTSTATUS            status;
@@ -1447,7 +1447,7 @@ fail1:
 
 VOID
 TargetD0ToD3(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     const ULONG         TargetId = TargetGetTargetId(Target);
@@ -1475,7 +1475,7 @@ TargetD0ToD3(
 
 static FORCEINLINE ULONG
 __ParseVbd(
-    IN  PCHAR   DeviceIdStr
+    _In_ PCHAR  DeviceIdStr
     )
 {
     ULONG       DeviceId = strtoul(DeviceIdStr, NULL, 10);
@@ -1502,14 +1502,14 @@ __ParseVbd(
 
 NTSTATUS
 TargetCreate(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PCHAR           DeviceId,
-    OUT PXENVBD_TARGET* _Target
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PCHAR              DeviceId,
+    _Outptr_ PXENVBD_TARGET *_Target
     )
 {
-    NTSTATUS            status;
-    PXENVBD_TARGET      Target;
-    ULONG               TargetId;
+    NTSTATUS                status;
+    PXENVBD_TARGET          Target;
+    ULONG                   TargetId;
 
     TargetId = __ParseVbd(DeviceId);
     if (TargetId >= XENVBD_MAX_TARGETS)
@@ -1564,7 +1564,7 @@ fail1:
 
 VOID
 TargetDestroy(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     const ULONG         TargetId = TargetGetTargetId(Target);
@@ -1599,7 +1599,7 @@ TARGET_GET_PROPERTY(DeviceObject, PDEVICE_OBJECT)
 //TARGET_GET_PROPERTY(TargetId, ULONG)
 ULONG
 TargetGetTargetId(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     return FrontendGetTargetId(Target->Frontend);
@@ -1607,7 +1607,7 @@ TargetGetTargetId(
 //TARGET_GET_PROPERTY(DeviceId, ULONG)
 ULONG
 TargetGetDeviceId(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     return FrontendGetDeviceId(Target->Frontend);
@@ -1616,7 +1616,7 @@ TargetGetDeviceId(
 //TARGET_GET_PROPERTY(Removable, BOOLEAN)
 BOOLEAN
 TargetGetRemovable(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     return FrontendGetFeatures(Target->Frontend)->Removable;
@@ -1627,7 +1627,7 @@ TARGET_GET_PROPERTY(DevicePnpState, DEVICE_PNP_STATE)
 
 BOOLEAN
 TargetGetMissing(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     )
 {
     KIRQL               Irql;
diff --git a/src/xenvbd/target.h b/src/xenvbd/target.h
index 7faae5e..8843367 100644
--- a/src/xenvbd/target.h
+++ b/src/xenvbd/target.h
@@ -43,84 +43,84 @@ typedef struct _XENVBD_TARGET XENVBD_TARGET, 
*PXENVBD_TARGET;
 
 extern NTSTATUS
 TargetCreate(
-    IN  PXENVBD_ADAPTER Adapter,
-    IN  PCHAR           DeviceId,
-    OUT PXENVBD_TARGET* _Target
+    _In_ PXENVBD_ADAPTER    Adapter,
+    _In_ PCHAR              DeviceId,
+    _Outptr_ PXENVBD_TARGET *_Target
     );
 
 extern VOID
 TargetDestroy(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     );
 
 extern NTSTATUS
 TargetD3ToD0(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     );
 
 extern VOID
 TargetD0ToD3(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     );
 
 extern NTSTATUS
 TargetDispatchPnp(
-    IN  PXENVBD_TARGET  Target,
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp
+    _In_ PXENVBD_TARGET Target,
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     );
 
 extern VOID
 TargetIssueDeviceEject(
-    IN  PXENVBD_TARGET  Target,
-    IN  const CHAR      *Reason
+    _In_ PXENVBD_TARGET Target,
+    _In_ const CHAR     *Reason
     );
 
 extern VOID
 TargetSetMissing(
-    IN  PXENVBD_TARGET  Target,
-    IN  const CHAR      *Reason
+    _In_ PXENVBD_TARGET Target,
+    _In_ const CHAR     *Reason
     );
 
 extern VOID
 TargetSetDevicePnpState(
-    IN  PXENVBD_TARGET      Target,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVBD_TARGET     Target,
+    _In_ DEVICE_PNP_STATE   State
     );
 
 extern VOID
 TargetSetDeviceObject(
-    IN  PXENVBD_TARGET  Target,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PXENVBD_TARGET Target,
+    _In_ PDEVICE_OBJECT DeviceObject
     );
 
 extern VOID
 TargetPrepareIo(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 extern BOOLEAN
 TargetStartIo(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 extern VOID
 TargetReset(
-    IN  PXENVBD_TARGET  Target
+    _In_ PXENVBD_TARGET Target
     );
 
 extern BOOLEAN
 TargetFlush(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 extern BOOLEAN
 TargetShutdown(
-    IN  PXENVBD_TARGET  Target,
-    IN  PXENVBD_SRBEXT  SrbExt
+    _In_ PXENVBD_TARGET Target,
+    _In_ PXENVBD_SRBEXT SrbExt
     );
 
 #define TARGET_GET_PROPERTY(_name, _type)       \
diff --git a/src/xenvbd/thread.c b/src/xenvbd/thread.c
index a9ea316..b8924b9 100644
--- a/src/xenvbd/thread.c
+++ b/src/xenvbd/thread.c
@@ -49,13 +49,13 @@ struct _XENVBD_THREAD {
     PKTHREAD                Thread;
 };
 
-__checkReturn
+_Check_return_
 __drv_allocatesMem(mem)
-__bcount(Length)
+_Writable_bytes_(Length)
 static FORCEINLINE PVOID
 #pragma warning(suppress: 28195)
 __ThreadAllocate(
-    __in ULONG  Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, THREAD_POOL_TAG);
@@ -64,7 +64,7 @@ __ThreadAllocate(
 static FORCEINLINE VOID
 #pragma warning(suppress: 28197)
 __ThreadFree(
-    __in __drv_freesMem(mem) PVOID Buffer
+    _In_ __drv_freesMem(mem) PVOID  Buffer
     )
 {
     if (Buffer)
@@ -73,7 +73,7 @@ __ThreadFree(
 
 static FORCEINLINE VOID
 __ThreadWake(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     ASSERT((Thread->Thread == NULL) || (Thread->Thread != 
KeGetCurrentThread()));
@@ -82,7 +82,7 @@ __ThreadWake(
 
 VOID
 ThreadWake(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     __ThreadWake(Thread);
@@ -90,7 +90,7 @@ ThreadWake(
 
 static FORCEINLINE VOID
 __ThreadAlert(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     Thread->Alerted = TRUE;
@@ -99,17 +99,17 @@ __ThreadAlert(
 
 VOID
 ThreadAlert(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     __ThreadAlert(Thread);
 }
 
-__checkReturn
-__drv_maxIRQL(PASSIVE_LEVEL)
+_Check_return_
+_IRQL_requires_max_(PASSIVE_LEVEL)
 BOOLEAN
 ThreadWait(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -128,7 +128,7 @@ KSTART_ROUTINE  ThreadFunction;
 
 VOID
 ThreadFunction(
-    __in PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVBD_THREAD  Self = Argument;
@@ -146,13 +146,13 @@ ThreadFunction(
     // NOT REACHED
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 _ThreadCreate(
-    __in  PCHAR                   Name,
-    __in  XENVBD_THREAD_FUNCTION  Function,
-    __in_opt PVOID                Context,
-    __out PXENVBD_THREAD          *_Thread
+    _In_ PCHAR                  Name,
+    _In_ XENVBD_THREAD_FUNCTION Function,
+    _In_opt_ PVOID              Context,
+    _Outptr_ PXENVBD_THREAD     *_Thread
     )
 {
     HANDLE                      Handle;
@@ -223,25 +223,25 @@ fail1:
 
 PKEVENT
 ThreadGetEvent(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     return &Thread->WorkEvent;
 }
 
-__checkReturn
+_Check_return_
 BOOLEAN
 ThreadIsAlerted(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     return Thread->Alerted;
 }
 
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 VOID
 ThreadJoin(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     )
 {
     LONG                References;
diff --git a/src/xenvbd/thread.h b/src/xenvbd/thread.h
index 598bcb2..e6aba66 100644
--- a/src/xenvbd/thread.h
+++ b/src/xenvbd/thread.h
@@ -39,13 +39,13 @@ typedef struct _XENVBD_THREAD XENVBD_THREAD, 
*PXENVBD_THREAD;
 
 typedef NTSTATUS (*XENVBD_THREAD_FUNCTION)(PXENVBD_THREAD, PVOID);
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 _ThreadCreate(
-    __in  PCHAR                   Name,
-    __in  XENVBD_THREAD_FUNCTION  Function,
-    __in_opt PVOID                Context,
-    __out PXENVBD_THREAD          *Thread
+    _In_ PCHAR                  Name,
+    _In_ XENVBD_THREAD_FUNCTION Function,
+    _In_opt_ PVOID              Context,
+    _Outptr_ PXENVBD_THREAD     *Thread
     );
 
 #define ThreadCreate(_f, _c, _t)    \
@@ -53,36 +53,36 @@ _ThreadCreate(
 
 extern PKEVENT
 ThreadGetEvent(
-    __in PXENVBD_THREAD  Self
+    _In_ PXENVBD_THREAD Self
     );
 
-__checkReturn
+_Check_return_
 extern BOOLEAN
 ThreadIsAlerted(
-    __in PXENVBD_THREAD  Self
+    _In_ PXENVBD_THREAD Self
     );
 
 extern VOID
 ThreadWake(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     );
 
 extern VOID
 ThreadAlert(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     );
 
-__checkReturn
-__drv_maxIRQL(PASSIVE_LEVEL)
+_Check_return_
+_IRQL_requires_max_(PASSIVE_LEVEL)
 extern BOOLEAN
 ThreadWait(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     );
 
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 extern VOID
 ThreadJoin(
-    __in PXENVBD_THREAD  Thread
+    _In_ PXENVBD_THREAD Thread
     );
 
 #endif  // _XENVBD_THREAD_H
-- 
2.55.0.windows.5



--
Césaire Mounah | Vates Windows Guest Tools Engineer

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®.