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

[PATCH 06/18] Fix direction annotations on written parameters


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
  • Date: Fri, 16 Oct 2026 15:26:43 +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:11 +0000
  • Feedback-id: default:8631fc262581453bbf619ec5b2062170:Sweego
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

Several parameters were annotated as _In_ although the corresponding functions
write them.
Change them to match what the functions actually do:

- _Out_ where the function fully initializes the pointee and does not
  depend on its previous contents.
- _Inout_ where the function reads or partially updates existing
  content.

No functional change.

Signed-off-by: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
---
 src/xencrsh/austere.c    |   8 +-
 src/xencrsh/buffer.c     |   2 +-
 src/xencrsh/buffer.h     |   2 +-
 src/xencrsh/fdo.c        |   6 +-
 src/xencrsh/fdo.h        |   2 +-
 src/xencrsh/frontend.c   |  88 +++++++-------
 src/xencrsh/frontend.h   |  20 +--
 src/xencrsh/log.c        |   2 +-
 src/xencrsh/pdo.c        |  40 +++---
 src/xencrsh/pdo.h        |  22 ++--
 src/xencrsh/pdoinquiry.c |  22 ++--
 src/xencrsh/pdoinquiry.h |   2 +-
 src/xencrsh/queue.c      |  18 +--
 src/xencrsh/queue.h      |  12 +-
 src/xencrsh/store.c      |  14 +--
 src/xencrsh/store.h      |   2 +-
 src/xenvbd/adapter.c     |  30 ++---
 src/xenvbd/adapter.h     |   8 +-
 src/xenvbd/base64.c      |   8 +-
 src/xenvbd/frontend.c    |  86 ++++++-------
 src/xenvbd/frontend.h    |  16 +--
 src/xenvbd/granter.c     |  14 +--
 src/xenvbd/granter.h     |  14 +--
 src/xenvbd/ring.c        | 254 +++++++++++++++++++--------------------
 src/xenvbd/ring.h        |   6 +-
 src/xenvbd/target.c      |  70 +++++------
 src/xenvbd/target.h      |  26 ++--
 src/xenvbd/thread.c      |  14 +--
 src/xenvbd/thread.h      |   8 +-
 29 files changed, 408 insertions(+), 408 deletions(-)

diff --git a/src/xencrsh/austere.c b/src/xencrsh/austere.c
index 052e4f6..e6bec1b 100644
--- a/src/xencrsh/austere.c
+++ b/src/xencrsh/austere.c
@@ -156,12 +156,12 @@ __FreeBig(
 }
 static PVOID
 __TrySmall(
-    _In_ PXENCRSH_SUBHEAP   SubHeap,
-    _In_ ULONG              Size
+    _Inout_ PXENCRSH_SUBHEAP    SubHeap,
+    _In_ ULONG                  Size
     )
 {
-    PUCHAR                  Ptr;
-    ULONG                   ThisSize;
+    PUCHAR                      Ptr;
+    ULONG                       ThisSize;
     
     if (SubHeap->Free < Size)
         return NULL;
diff --git a/src/xencrsh/buffer.c b/src/xencrsh/buffer.c
index 8fd1702..7d27342 100644
--- a/src/xencrsh/buffer.c
+++ b/src/xencrsh/buffer.c
@@ -171,7 +171,7 @@ BufferCopyIn(
 VOID
 BufferCopyOut(
     _In_ ULONG      BufferId,
-    _In_ PVOID      Output,
+    _Out_ PVOID     Output,
     _In_ ULONG      Length
     )
 {
diff --git a/src/xencrsh/buffer.h b/src/xencrsh/buffer.h
index 5c54c03..148009f 100644
--- a/src/xencrsh/buffer.h
+++ b/src/xencrsh/buffer.h
@@ -66,7 +66,7 @@ BufferCopyIn(
 extern VOID
 BufferCopyOut(
     _In_ ULONG  BufferId,
-    _In_ PVOID  Output,
+    _Out_ PVOID Output,
     _In_ ULONG  Length
     );
     
diff --git a/src/xencrsh/fdo.c b/src/xencrsh/fdo.c
index 68d5263..8aea390 100644
--- a/src/xencrsh/fdo.c
+++ b/src/xencrsh/fdo.c
@@ -138,7 +138,7 @@ FdoGetFeatureFlag(
 }
 static FORCEINLINE NTSTATUS
 FdoCreateTarget(
-    _In_ PXENVBD_FDO    Fdo,
+    _Inout_ PXENVBD_FDO Fdo,
     _In_ PSTR           DeviceId,
     _In_ ULONG          TargetId
     )
@@ -158,7 +158,7 @@ FdoCreateTarget(
 }
 static NTSTATUS
 FdoFindTarget(
-    _In_ PXENVBD_FDO    Fdo
+    _Inout_ PXENVBD_FDO Fdo
     )
 {
     NTSTATUS            Status;
@@ -264,7 +264,7 @@ fail:
 
 VOID
 FdoTerminate(
-    _In_ PXENVBD_FDO    Fdo
+    _Inout_ PXENVBD_FDO Fdo
     )
 {
     LogTrace("====>\n");
diff --git a/src/xencrsh/fdo.h b/src/xencrsh/fdo.h
index 2ecfb28..d9c2357 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
+    _Inout_ PXENVBD_FDO Fdo
     );
 
 // Query Methods
diff --git a/src/xencrsh/frontend.c b/src/xencrsh/frontend.c
index 00dfcd3..72115c2 100644
--- a/src/xencrsh/frontend.c
+++ b/src/xencrsh/frontend.c
@@ -160,7 +160,7 @@ __Idx(
 }
 static FORCEINLINE VOID
 FrontendCompleteResponses(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     for (;;) {
@@ -202,7 +202,7 @@ FrontendCompleteResponses(
 
 VOID
 FrontendEvtchnCallback(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     // complete responses
@@ -234,12 +234,12 @@ FrontendCanSubmitRequest(
 
 VOID
 FrontendInsertRequestOnRing(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ PXENVBD_REQUEST    Request
+    _Inout_ 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);
@@ -326,11 +326,11 @@ __Min(
 }
 static FORCEINLINE NTSTATUS
 __UpdateBackendPath(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    NTSTATUS                Status;
-    PCHAR                   Path;
+    NTSTATUS                    Status;
+    PCHAR                       Path;
 
     if (Frontend->BackendPath) {
         LogTrace("<< %s\n", Frontend->BackendPath);
@@ -456,11 +456,11 @@ out:
 }
 static VOID
 __ReadFeatures(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ 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
+    _Inout_ 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
+    _Inout_ 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
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     // EVTCHN
@@ -698,11 +698,11 @@ abort:
 //=============================================================================
 static NTSTATUS
 FrontendClose(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ 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
+    _Inout_ 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
+    _Inout_ 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
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     // Free Ring, Close Evtchn, Gnttab unmap
@@ -897,14 +897,14 @@ FrontendDisconnect(
 }
 static FORCEINLINE VOID
 FrontendEnable(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     Frontend->Connected = TRUE;
 }
 static FORCEINLINE VOID
 FrontendDisable(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
     Frontend->Connected = FALSE;
@@ -913,10 +913,10 @@ FrontendDisable(
 // Init/Term
 NTSTATUS
 FrontendCreate(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ PSTR               DeviceId,
-    _In_ ULONG              TargetId,
-    _In_ PXENVBD_PDO        Pdo
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ PSTR                   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
+    _Inout_ 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
+    _Inout_ 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), 
diff --git a/src/xencrsh/frontend.h b/src/xencrsh/frontend.h
index 80ee861..a93f8a9 100644
--- a/src/xencrsh/frontend.h
+++ b/src/xencrsh/frontend.h
@@ -94,21 +94,21 @@ typedef struct _XENVBD_FRONTEND {
 // Init/Term
 extern NTSTATUS
 FrontendCreate(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ PSTR               DeviceId,
-    _In_ ULONG              TargetId,
-    _In_ PXENVBD_PDO        Pdo
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ PSTR                   DeviceId,
+    _In_ ULONG                  TargetId,
+    _In_ PXENVBD_PDO            Pdo
     );
 
 extern VOID
 FrontendDestroy(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     );
 
 extern NTSTATUS
 FrontendSetState(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ XENVBD_STATE       State
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ XENVBD_STATE           State
     );
 
 extern NTSTATUS
@@ -120,7 +120,7 @@ FrontendCloseTarget(
 // Ring Slots
 extern VOID
 FrontendEvtchnCallback(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     );
 
 extern BOOLEAN
@@ -131,8 +131,8 @@ FrontendCanSubmitRequest(
 
 extern VOID
 FrontendInsertRequestOnRing(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ PXENVBD_REQUEST    Request
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ PXENVBD_REQUEST        Request
     );
 
 extern VOID
diff --git a/src/xencrsh/log.c b/src/xencrsh/log.c
index a2da155..dbff879 100644
--- a/src/xencrsh/log.c
+++ b/src/xencrsh/log.c
@@ -48,7 +48,7 @@ LogQemuPut(
 
 static DECLSPEC_NOINLINE PCHAR
 LogFormatNumber(
-    _In_ PSTR       Buffer,
+    _Out_ PSTR      Buffer,
     _In_ ULONGLONG  Value,
     _In_ UCHAR      Base,
     _In_ BOOLEAN    UpperCase
diff --git a/src/xencrsh/pdo.c b/src/xencrsh/pdo.c
index fa66172..d130fc8 100644
--- a/src/xencrsh/pdo.c
+++ b/src/xencrsh/pdo.c
@@ -136,7 +136,7 @@ fail1:
 
 VOID
 PdoDestroy(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     )
 {
     LARGE_INTEGER       Timeout;
@@ -156,7 +156,7 @@ PdoDestroy(
 
 DECLSPEC_NOINLINE VOID
 PdoD3ToD0(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ 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
+    _Inout_ 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
+    _Inout_ PXENVBD_PDO Pdo
     )
 {
     if (Pdo)
@@ -194,7 +194,7 @@ PdoReference(
 
 VOID
 PdoDereference(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     )
 {
     if (Pdo)
@@ -217,7 +217,7 @@ PdoSectorSize(
 // REQUEST related
 static VOID
 __CleanupRequest(
-    _In_ PXENVBD_REQUEST    Request,
+    _Inout_ PXENVBD_REQUEST Request,
     _In_ BOOLEAN            CopyOut
     )
 {
@@ -266,7 +266,7 @@ __CleanupSrb(
 // Preparing Requests
 static FORCEINLINE VOID
 __UpdateStats(
-    _In_ PXENVBD_PDO    Pdo,
+    _Inout_ PXENVBD_PDO Pdo,
     _In_ UCHAR          Operation
     )
 {
@@ -386,7 +386,7 @@ __Pfn(
 }
 static NTSTATUS
 PrepareReadWrite(
-    _In_ PXENVBD_PDO            Pdo,
+    _Inout_ PXENVBD_PDO         Pdo,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -558,7 +558,7 @@ done:
 }
 static VOID
 PrepareSyncCache(
-    _In_ PXENVBD_PDO            Pdo,
+    _Inout_ PXENVBD_PDO         Pdo,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -597,7 +597,7 @@ PrepareSyncCache(
 
 VOID
 PdoPrepareFresh(
-    _In_ PXENVBD_PDO        Pdo
+    _Inout_ PXENVBD_PDO     Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
@@ -623,7 +623,7 @@ PdoPrepareFresh(
 
 VOID
 PdoSubmitPrepared(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     )
 {
     for (;;) {
@@ -655,7 +655,7 @@ PdoSubmitPrepared(
 
 VOID
 PdoCompleteShutdown(
-    _In_ PXENVBD_PDO        Pdo
+    _Inout_ PXENVBD_PDO     Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
@@ -676,8 +676,8 @@ PdoCompleteShutdown(
 
 VOID
 PdoCompleteSubmittedRequest(
-    _In_ PXENVBD_PDO        Pdo,
-    _In_ PXENVBD_REQUEST    Request,
+    _Inout_ PXENVBD_PDO     Pdo,
+    _Inout_ PXENVBD_REQUEST Request,
     _In_ SHORT              Status
     )
 {
@@ -767,8 +767,8 @@ __ValidateSectors(
 }
 static BOOLEAN
 PdoReadWrite(
-    _In_ PXENVBD_PDO            Pdo,
-    _In_ PSCSI_REQUEST_BLOCK    Srb
+    _Inout_ PXENVBD_PDO         Pdo,
+    _Out_ PSCSI_REQUEST_BLOCK   Srb
     )
 {
     NTSTATUS                    Status;
@@ -1041,7 +1041,7 @@ PdoReadCapacity16(
 // StorPort Methods
 static FORCEINLINE VOID
 __DisplayStats(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     )
 {
     LogVerbose("Target[%d] : BLKIF_OP_'s Reads %d / Writes %d / Others %d\n",
@@ -1051,7 +1051,7 @@ __DisplayStats(
 }
 static VOID
 __AbortSrbQueue(
-    _In_ PSRB_QUEUE     Queue,
+    _Inout_ PSRB_QUEUE  Queue,
     _In_ PXENVBD_PDO    Pdo,
     _In_ BOOLEAN        Free,
     _In_ PSTR           Name
@@ -1133,7 +1133,7 @@ PdoExecuteScsi(
 }
 static FORCEINLINE VOID
 PdoQueueShutdown(
-    _In_ PXENVBD_PDO            Pdo,
+    _Inout_ PXENVBD_PDO         Pdo,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -1144,7 +1144,7 @@ PdoQueueShutdown(
 
 VOID
 PdoReset(
-    _In_ PXENVBD_PDO        Pdo
+    _Inout_ PXENVBD_PDO     Pdo
     )
 {
     PSCSI_REQUEST_BLOCK     Srb;
diff --git a/src/xencrsh/pdo.h b/src/xencrsh/pdo.h
index d0f2f3a..7a0d394 100644
--- a/src/xencrsh/pdo.h
+++ b/src/xencrsh/pdo.h
@@ -53,28 +53,28 @@ PdoCreate(
 
 extern VOID
 PdoDestroy(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoD3ToD0(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoD0ToD3(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 // Reference Counting
 extern VOID
 PdoReference(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoDereference(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 // Query Methods
@@ -86,30 +86,30 @@ PdoSectorSize(
 // Queue-Related
 extern VOID
 PdoPrepareFresh(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoSubmitPrepared(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoCompleteShutdown(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern VOID
 PdoCompleteSubmittedRequest(
-    _In_ PXENVBD_PDO        Pdo,
-    _In_ PXENVBD_REQUEST    Request,
+    _Inout_ PXENVBD_PDO     Pdo,
+    _Inout_ PXENVBD_REQUEST Request,
     _In_ SHORT              Status
     );
 
 // StorPort Methods
 extern VOID
 PdoReset(
-    _In_ PXENVBD_PDO    Pdo
+    _Inout_ PXENVBD_PDO Pdo
     );
 
 extern BOOLEAN
diff --git a/src/xencrsh/pdoinquiry.c b/src/xencrsh/pdoinquiry.c
index f889ffd..666eb89 100644
--- a/src/xencrsh/pdoinquiry.c
+++ b/src/xencrsh/pdoinquiry.c
@@ -169,7 +169,7 @@ __FindPage(
 
 static VOID
 __FreeInquiryData(
-    _In_ PXENVBD_INQUIRY    Inquiry
+    _Inout_ PXENVBD_INQUIRY Inquiry
     )
 {
     PLIST_ENTRY             Entry;
@@ -233,12 +233,12 @@ __DecodeChar(
 }
 static FORCEINLINE UCHAR
 __Decode(
-    _In_ PUCHAR Dest,
-    _In_ PSTR   Src,
-    _In_ ULONG  RemainingChars
+    _Out_ PUCHAR    Dest,
+    _In_ PSTR       Src,
+    _In_ ULONG      RemainingChars
     )
 {
-    UCHAR       Values[4];
+    UCHAR           Values[4];
 
     if (RemainingChars < 4)
         return 0xFF;
@@ -308,7 +308,7 @@ fail1:
 }
 static NTSTATUS
 __ReadPage(
-    _In_ PXENVBD_INQUIRY    Inquiry,
+    _Inout_ PXENVBD_INQUIRY Inquiry,
     _In_ PSTR               BasePath,
     _In_ PSTR               PageCode
     )
@@ -373,7 +373,7 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage83(
-    _In_ PXENVBD_INQUIRY    Inquiry
+    _Inout_ PXENVBD_INQUIRY Inquiry
     )
 {
     PXENVBD_PAGE            Page;
@@ -408,7 +408,7 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage80(
-    _In_ PXENVBD_INQUIRY    Inquiry
+    _Inout_ PXENVBD_INQUIRY Inquiry
     )
 {
     PXENVBD_PAGE            Page;
@@ -445,7 +445,7 @@ fail1:
 }
 static FORCEINLINE NTSTATUS
 __GeneratePageStd(
-    _In_ PXENVBD_INQUIRY    Inquiry
+    _Inout_ PXENVBD_INQUIRY Inquiry
     )
 {
     INQUIRYDATA             *Data;
@@ -478,7 +478,7 @@ fail1:
 }
 static NTSTATUS
 __GeneratePage00(
-    _In_ PXENVBD_INQUIRY    Inquiry
+    _Inout_ PXENVBD_INQUIRY Inquiry
     )
 {
     PUCHAR                  Buffer;
@@ -732,7 +732,7 @@ fail:
 
 VOID
 PdoFreeInquiryData(
-    _In_ PVOID  Inquiry
+    _Inout_ PVOID   Inquiry
     )
 {
     __FreeInquiryData((PXENVBD_INQUIRY)Inquiry);
diff --git a/src/xencrsh/pdoinquiry.h b/src/xencrsh/pdoinquiry.h
index 2f3e89e..ffa32ef 100644
--- a/src/xencrsh/pdoinquiry.h
+++ b/src/xencrsh/pdoinquiry.h
@@ -47,7 +47,7 @@ PdoReadInquiryData(
 
 extern VOID
 PdoFreeInquiryData(
-    _In_ PVOID  Inquiry
+    _Inout_ PVOID   Inquiry
     );
 
 extern VOID
diff --git a/src/xencrsh/queue.c b/src/xencrsh/queue.c
index d69838d..c5b78dd 100644
--- a/src/xencrsh/queue.c
+++ b/src/xencrsh/queue.c
@@ -51,7 +51,7 @@ __QueueValid(
 }
 static VOID
 __QueueRemoveLocked(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -86,7 +86,7 @@ __QueueRemoveLocked(
 
 static FORCEINLINE VOID
 __QueueInsertHeadLocked(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -117,7 +117,7 @@ __QueueInsertHeadLocked(
 
 static FORCEINLINE VOID
 __QueueInsertTailLocked(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -157,7 +157,7 @@ QueuePeek(
 
 PSCSI_REQUEST_BLOCK
 QueuePop(
-    _In_ PSRB_QUEUE     Queue
+    _Inout_ PSRB_QUEUE  Queue
     )
 {
     PSCSI_REQUEST_BLOCK Srb = NULL;
@@ -170,7 +170,7 @@ QueuePop(
 
 VOID
 QueueInsertHead(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -179,7 +179,7 @@ QueueInsertHead(
 
 VOID
 QueueInsertTail(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -188,7 +188,7 @@ QueueInsertTail(
 
 VOID
 QueueRemove(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     )
 {
@@ -197,8 +197,8 @@ QueueRemove(
 
 VOID
 QueueDebugCallback(
-    _In_ PSRB_QUEUE Queue,
-    _In_ PSTR       Name
+    _Inout_ PSRB_QUEUE  Queue,
+    _In_ PSTR           Name
     )
 {
     LogTrace("=====> %s\n", Name);
diff --git a/src/xencrsh/queue.h b/src/xencrsh/queue.h
index 3926995..27eca09 100644
--- a/src/xencrsh/queue.h
+++ b/src/xencrsh/queue.h
@@ -55,31 +55,31 @@ QueuePeek(
 
 PSCSI_REQUEST_BLOCK
 QueuePop(
-    _In_ PSRB_QUEUE Queue
+    _Inout_ PSRB_QUEUE  Queue
     );
 
 VOID
 QueueInsertHead(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueInsertTail(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueRemove(
-    _In_ PSRB_QUEUE             Queue,
+    _Inout_ PSRB_QUEUE          Queue,
     _In_ PSCSI_REQUEST_BLOCK    Srb
     );
 
 VOID
 QueueDebugCallback(
-    _In_ PSRB_QUEUE Queue,
-    _In_ PSTR       Name
+    _Inout_ PSRB_QUEUE  Queue,
+    _In_ PSTR           Name
     );
 
 #endif // _XENVBD_QUEUE_H
diff --git a/src/xencrsh/store.c b/src/xencrsh/store.c
index 8da61e8..dbdf818 100644
--- a/src/xencrsh/store.c
+++ b/src/xencrsh/store.c
@@ -511,7 +511,7 @@ StorePoll()
 
 static PSTORE_RESPONSE
 StoreSubmitRequest(
-    _In_ PSTORE_REQUEST         Request
+    _Inout_ PSTORE_REQUEST      Request
     )
 {
     PSTORE_RESPONSE             Response;
@@ -587,7 +587,7 @@ __StorePayloadData(
 
 static FORCEINLINE VOID
 StoreFreeResponse(
-    _In_ PSTORE_RESPONSE    Response
+    _Inout_ PSTORE_RESPONSE Response
     )
 {
     PSTORE_SEGMENT          Segment;
@@ -999,13 +999,13 @@ fail1:
 
 NTSTATUS
 StoreTransactionEnd(
-    _In_ PXENBUS_STORE_TRANSACTION  Transaction,
-    _In_ BOOLEAN                    Commit
+    _Inout_ PXENBUS_STORE_TRANSACTION   Transaction,
+    _In_ BOOLEAN                        Commit
     )
 {
-    STORE_REQUEST                   Request;
-    PSTORE_RESPONSE                 Response;
-    NTSTATUS                        status;
+    STORE_REQUEST                       Request;
+    PSTORE_RESPONSE                     Response;
+    NTSTATUS                            status;
 
     RtlZeroMemory(&Request, sizeof (STORE_REQUEST));
 
diff --git a/src/xencrsh/store.h b/src/xencrsh/store.h
index 8722a79..b4a4de4 100644
--- a/src/xencrsh/store.h
+++ b/src/xencrsh/store.h
@@ -88,7 +88,7 @@ StoreTransactionStart(
 
 NTSTATUS
 StoreTransactionEnd(                                                     
-    _In_ PVOID      Transaction,
+    _Inout_ PVOID   Transaction,
     _In_ BOOLEAN    Commit
     );
 
diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c
index 8eab1f2..5dafe07 100644
--- a/src/xenvbd/adapter.c
+++ b/src/xenvbd/adapter.c
@@ -181,7 +181,7 @@ fail1:
 
 static FORCEINLINE PANSI_STRING
 __AdapterMultiSzToUpcaseAnsi(
-    _In_ PSTR       Buffer
+    _Inout_ PSTR    Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -258,7 +258,7 @@ __AdapterFreeAnsi(
 
 static FORCEINLINE BOOLEAN
 __AdapterSetDevicePowerState(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ DEVICE_POWER_STATE State
     )
 {
@@ -438,7 +438,7 @@ AdapterRequestReboot(
 
 static FORCEINLINE VOID
 __AdapterEnumerate(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PANSI_STRING       Devices
     )
 {
@@ -592,7 +592,7 @@ done:
 static FORCEINLINE BOOLEAN
 __AdapterMatchDistribution(
     _In_ PXENVBD_ADAPTER    Adapter,
-    _In_ PSTR               Buffer
+    _Inout_ PZZSTR          Buffer
     )
 {
     PCHAR                   Vendor;
@@ -808,7 +808,7 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __AdapterD3ToD0(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     NTSTATUS                status;
@@ -854,7 +854,7 @@ fail1:
 
 static FORCEINLINE VOID
 __AdapterD0ToD3(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     Trace("=====>\n");
@@ -939,7 +939,7 @@ AdapterDebugCallback(
 
 static NTSTATUS
 AdapterD3ToD0(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     NTSTATUS                status;
@@ -1034,7 +1034,7 @@ fail1:
 
 static VOID
 AdapterD0ToD3(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     ULONG                   TargetId;
@@ -1205,7 +1205,7 @@ AdapterReleaseLock(
 
 static FORCEINLINE VOID
 __AdapterSetBootEmulated(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     NTSTATUS                status;
@@ -1306,7 +1306,7 @@ fail1:
 _IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 AdapterInitialize(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PDEVICE_OBJECT     DeviceObject,
     _In_ PDEVICE_OBJECT     PhysicalDeviceObject,
     _In_ PDEVICE_OBJECT     LowerDeviceObject
@@ -1480,7 +1480,7 @@ fail1:
 
 static VOID
 AdapterTeardown(
-    _In_ PXENVBD_ADAPTER    Adapter
+    _Inout_ PXENVBD_ADAPTER Adapter
     )
 {
     ULONG                   TargetId;
@@ -1563,7 +1563,7 @@ AdapterTeardown(
 
 VOID
 AdapterCompleteSrb(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PXENVBD_SRBEXT     SrbExt
     )
 {
@@ -1607,7 +1607,7 @@ AdapterSetDeviceQueueDepth(
 PFN_NUMBER
 AdapterGetNextSGEntry(
     _In_ PXENVBD_ADAPTER            Adapter,
-    _In_ PXENVBD_SRBEXT             SrbExt,
+    _Inout_ PXENVBD_SRBEXT          SrbExt,
     _In_ ULONG                      Existing,
     _Out_ PULONG                    Offset,
     _Out_ PULONG                    Length
@@ -1811,7 +1811,7 @@ AdapterForwardPnp(
 
 NTSTATUS
 AdapterDispatchPnp(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PDEVICE_OBJECT     DeviceObject,
     _In_ PIRP               Irp
     )
@@ -1854,7 +1854,7 @@ AdapterDispatchPnp(
 
 NTSTATUS
 AdapterDispatchPower(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PDEVICE_OBJECT     DeviceObject,
     _In_ PIRP               Irp
     )
diff --git a/src/xenvbd/adapter.h b/src/xenvbd/adapter.h
index f57168a..41ad012 100644
--- a/src/xenvbd/adapter.h
+++ b/src/xenvbd/adapter.h
@@ -80,7 +80,7 @@ AdapterRequestReboot(
 
 extern VOID
 AdapterCompleteSrb(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PXENVBD_SRBEXT     SrbExt
     );
 
@@ -98,7 +98,7 @@ AdapterSetDeviceQueueDepth(
 extern PFN_NUMBER
 AdapterGetNextSGEntry(
     _In_ PXENVBD_ADAPTER    Adapter,
-    _In_ PXENVBD_SRBEXT     SrbExt,
+    _Inout_ PXENVBD_SRBEXT  SrbExt,
     _In_ ULONG              Existing,
     _Out_ PULONG            Offset,
     _Out_ PULONG            Length
@@ -117,14 +117,14 @@ AdapterPutBounce(
 
 extern NTSTATUS
 AdapterDispatchPnp(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PDEVICE_OBJECT     DeviceObject,
     _In_ PIRP               Irp
     );
 
 extern NTSTATUS
 AdapterDispatchPower(
-    _In_ PXENVBD_ADAPTER    Adapter,
+    _Inout_ PXENVBD_ADAPTER Adapter,
     _In_ PDEVICE_OBJECT     DeviceObject,
     _In_ PIRP               Irp
     );
diff --git a/src/xenvbd/base64.c b/src/xenvbd/base64.c
index dd8e87a..c3dbf30 100644
--- a/src/xenvbd/base64.c
+++ b/src/xenvbd/base64.c
@@ -74,12 +74,12 @@ __DecodeChar(
 
 static DECLSPEC_NOINLINE CHAR
 __Decode(
-    _In_ PUCHAR Dst,
-    _In_ PSTR   Src,
-    _In_ ULONG  Left
+    _Out_ PUCHAR    Dst,
+    _In_ PSTR       Src,
+    _In_ ULONG      Left
     )
 {
-    UCHAR       Values[4];
+    UCHAR           Values[4];
 
     if (Left < 4)
         return -1;
diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c
index d75e702..06c7295 100644
--- a/src/xenvbd/frontend.c
+++ b/src/xenvbd/frontend.c
@@ -191,8 +191,8 @@ __FrontendFree(
 
 VOID
 FrontendRemoveFeature(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ UCHAR              BlkifOperation
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ UCHAR                  BlkifOperation
     )
 {
     switch (BlkifOperation) {
@@ -265,7 +265,7 @@ FrontendSetEjectFailed(
 
 VOID
 FrontendSetDeviceUsage(
-    _In_ PXENVBD_FRONTEND               Frontend,
+    _Inout_ PXENVBD_FRONTEND            Frontend,
     _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type,
     _In_ BOOLEAN                        Value
     )
@@ -590,7 +590,7 @@ static FORCEINLINE BOOLEAN
 FrontendReadFeature(
     _In_ PXENVBD_FRONTEND   Frontend,
     _In_ XENVBD_FEATURE     Feature,
-    _In_ PBOOLEAN           Value
+    _Inout_ PBOOLEAN        Value
 )
 {
     NTSTATUS                status;
@@ -631,7 +631,7 @@ static FORCEINLINE BOOLEAN
 FrontendReadDiskFeature(
     _In_ PXENVBD_FRONTEND   Frontend,
     _In_ PSTR               Name,
-    _In_ PBOOLEAN           Value
+    _Inout_ PBOOLEAN        Value
     )
 {
     NTSTATUS                status;
@@ -661,7 +661,7 @@ FrontendReadValue32(
     _In_ PXENVBD_FRONTEND   Frontend,
     _In_ XENVBD_FEATURE     Feature,
     _In_ BOOLEAN            AllowOverride,
-    _In_ PULONG             Value
+    _Inout_ PULONG          Value
 )
 {
     NTSTATUS                status;
@@ -703,7 +703,7 @@ static FORCEINLINE BOOLEAN
 FrontendReadDiskValue32(
     _In_ PXENVBD_FRONTEND   Frontend,
     _In_ PSTR               Name,
-    _In_ PULONG             Value
+    _Inout_ PULONG          Value
 )
 {
     NTSTATUS                status;
@@ -784,11 +784,11 @@ __Units(
 
 static FORCEINLINE VOID
 FrontendReadFeatures(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    BOOLEAN                 DiscardFeature = FALSE;
-    BOOLEAN                 DiscardEnable = TRUE;
+    BOOLEAN                     DiscardFeature = FALSE;
+    BOOLEAN                     DiscardEnable = TRUE;
 
     FrontendReadFeature(Frontend,
                         FeatureRemovable,
@@ -853,11 +853,11 @@ FrontendReadFeatures(
 
 static FORCEINLINE VOID
 FrontendReadDiskInfo(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    BOOLEAN                 Changed;
-    PXENVBD_DISKINFO        DiskInfo = &Frontend->DiskInfo;
+    BOOLEAN                     Changed;
+    PXENVBD_DISKINFO            DiskInfo = &Frontend->DiskInfo;
 
     Changed = FrontendReadDiskValue32(Frontend,
                                       "info",
@@ -928,11 +928,11 @@ FrontendReadDiskInfo(
 
 static FORCEINLINE VOID
 FrontendReadInquiryOverrides(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    PCHAR                   Buffer;
-    NTSTATUS                status;
+    PCHAR                       Buffer;
+    NTSTATUS                    status;
 
     status = XENBUS_STORE(Read,
                           &Frontend->StoreInterface,
@@ -1035,11 +1035,11 @@ fail1:
 _IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendPrepare(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    NTSTATUS                Status;
-    XenbusState             BackendState;
+    NTSTATUS                    Status;
+    XenbusState                 BackendState;
 
     // get/update backend path
     Status = __UpdateBackendPath(Frontend);
@@ -1133,12 +1133,12 @@ fail1:
 }
 static VOID
 FrontendSetNumQueues(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    PCHAR                   Buffer;
-    ULONG                   BackendMaxQueues;
-    NTSTATUS                status;
+    PCHAR                       Buffer;
+    ULONG                       BackendMaxQueues;
+    NTSTATUS                    status;
 
     status = XENBUS_STORE(Read,
                           &Frontend->StoreInterface,
@@ -1166,11 +1166,11 @@ FrontendSetNumQueues(
 _IRQL_requires_(DISPATCH_LEVEL)
 static NTSTATUS
 FrontendConnect(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    NTSTATUS                Status;
-    XenbusState             BackendState;
+    NTSTATUS                    Status;
+    XenbusState                 BackendState;
 
     FrontendSetNumQueues(Frontend);
 
@@ -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
+    _Inout_ 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", 
@@ -1672,12 +1672,12 @@ _Check_return_
 _IRQL_requires_max_(DISPATCH_LEVEL)
 NTSTATUS
 FrontendD3ToD0(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    PXENVBD_ADAPTER         Adapter = TargetGetAdapter(Frontend->Target);
-    KIRQL                   Irql;
-    NTSTATUS                status;
+    PXENVBD_ADAPTER             Adapter = TargetGetAdapter(Frontend->Target);
+    KIRQL                       Irql;
+    NTSTATUS                    status;
 
     KeAcquireSpinLock(&Frontend->StateLock, &Irql);
 
@@ -1752,10 +1752,10 @@ fail1:
 _IRQL_requires_max_(DISPATCH_LEVEL)
 VOID
 FrontendD0ToD3(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    KIRQL                   Irql;
+    KIRQL                       Irql;
 
     KeAcquireSpinLock(&Frontend->StateLock, &Irql);
 
@@ -1792,12 +1792,12 @@ FrontendD0ToD3(
 _Check_return_
 NTSTATUS
 FrontendSetState(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ XENVBD_STATE       State
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ XENVBD_STATE           State
     )
 {
-    KIRQL                   Irql;
-    NTSTATUS                status;
+    KIRQL                       Irql;
+    NTSTATUS                    status;
 
     KeAcquireSpinLock(&Frontend->StateLock, &Irql);
 
@@ -1837,10 +1837,10 @@ FrontendBackend(
 
 NTSTATUS
 FrontendReset(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     )
 {
-    NTSTATUS                status;
+    NTSTATUS                    status;
 
     if (Frontend->State != XENVBD_ENABLED)
         goto done;
diff --git a/src/xenvbd/frontend.h b/src/xenvbd/frontend.h
index 1117b8d..bb2c57f 100644
--- a/src/xenvbd/frontend.h
+++ b/src/xenvbd/frontend.h
@@ -87,8 +87,8 @@ typedef struct _XENVBD_FRONTEND XENVBD_FRONTEND, 
*PXENVBD_FRONTEND;
 
 extern VOID
 FrontendRemoveFeature(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ UCHAR              BlkifOperation
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ UCHAR                  BlkifOperation
     );
 
 extern PVOID
@@ -110,7 +110,7 @@ FrontendSetEjectFailed(
 
 extern VOID
 FrontendSetDeviceUsage(
-    _In_ PXENVBD_FRONTEND               Frontend,
+    _Inout_ PXENVBD_FRONTEND            Frontend,
     _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type,
     _In_ BOOLEAN                        Value
     );
@@ -119,25 +119,25 @@ _Check_return_
 _IRQL_requires_max_(DISPATCH_LEVEL)
 extern NTSTATUS
 FrontendD3ToD0(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     );
 
 _IRQL_requires_max_(DISPATCH_LEVEL)
 extern VOID
 FrontendD0ToD3(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     );
 
 _Check_return_
 extern NTSTATUS
 FrontendSetState(
-    _In_ PXENVBD_FRONTEND   Frontend,
-    _In_ XENVBD_STATE       State
+    _Inout_ PXENVBD_FRONTEND    Frontend,
+    _In_ XENVBD_STATE           State
     );
 
 extern NTSTATUS
 FrontendReset(
-    _In_ PXENVBD_FRONTEND   Frontend
+    _Inout_ PXENVBD_FRONTEND    Frontend
     );
 
 extern NTSTATUS
diff --git a/src/xenvbd/granter.c b/src/xenvbd/granter.c
index d1cbbfe..fd90965 100644
--- a/src/xenvbd/granter.c
+++ b/src/xenvbd/granter.c
@@ -102,7 +102,7 @@ fail1:
 
 VOID
 GranterDestroy(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     )
 {
     Granter->Frontend = NULL;
@@ -168,7 +168,7 @@ GranterDebugCallback(
 
 NTSTATUS
 GranterConnect(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     )
 {
     PXENVBD_ADAPTER         Adapter = 
TargetGetAdapter(FrontendGetTarget(Granter->Frontend));
@@ -256,7 +256,7 @@ GranterStoreWrite(
 
 VOID
 GranterEnable(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     )
 {
     ASSERT(Granter->Enabled == FALSE);
@@ -266,7 +266,7 @@ GranterEnable(
 
 VOID
 GranterDisable(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     )
 {
     ASSERT(Granter->Enabled == TRUE);
@@ -276,7 +276,7 @@ GranterDisable(
 
 VOID
 GranterDisconnect(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     )
 {
     ASSERT(Granter->Connected == TRUE);
@@ -305,7 +305,7 @@ GranterDisconnect(
 
 NTSTATUS
 GranterGet(
-    _In_ PXENVBD_GRANTER    Granter,
+    _Inout_ PXENVBD_GRANTER Granter,
     _In_ PFN_NUMBER         Pfn,
     _In_ BOOLEAN            ReadOnly,
     _Outptr_ PVOID          *Handle
@@ -346,7 +346,7 @@ fail1:
 
 VOID
 GranterPut(
-    _In_ PXENVBD_GRANTER    Granter,
+    _Inout_ PXENVBD_GRANTER Granter,
     _In_ PVOID              Handle
     )
 {
diff --git a/src/xenvbd/granter.h b/src/xenvbd/granter.h
index c59e65d..e8d0899 100644
--- a/src/xenvbd/granter.h
+++ b/src/xenvbd/granter.h
@@ -47,12 +47,12 @@ GranterCreate(
 
 extern VOID
 GranterDestroy(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     );
 
 extern NTSTATUS
 GranterConnect(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     );
 
 extern NTSTATUS
@@ -63,22 +63,22 @@ GranterStoreWrite(
 
 extern VOID
 GranterEnable(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     );
 
 extern VOID
 GranterDisable(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     );
 
 extern VOID
 GranterDisconnect(
-    _In_ PXENVBD_GRANTER    Granter
+    _Inout_ PXENVBD_GRANTER Granter
     );
 
 extern NTSTATUS
 GranterGet(
-    _In_ PXENVBD_GRANTER    Granter,
+    _Inout_ PXENVBD_GRANTER Granter,
     _In_ PFN_NUMBER         Pfn,
     _In_ BOOLEAN            ReadOnly,
     _Outptr_ PVOID          *Handle
@@ -86,7 +86,7 @@ GranterGet(
 
 extern VOID
 GranterPut(
-    _In_ PXENVBD_GRANTER    Granter,
+    _Inout_ PXENVBD_GRANTER Granter,
     _In_ PVOID              Handle
     );
 
diff --git a/src/xenvbd/ring.c b/src/xenvbd/ring.c
index 3f602ee..cd5093c 100644
--- a/src/xenvbd/ring.c
+++ b/src/xenvbd/ring.c
@@ -272,13 +272,13 @@ fail1:
 
 static VOID
 BlkifRingPutIndirect(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_INDIRECT   Indirect
+    _In_ PXENVBD_BLKIF_RING     BlkifRing,
+    _Inout_ PXENVBD_INDIRECT    Indirect
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PXENVBD_GRANTER         Granter = FrontendGetGranter(Frontend);
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PXENVBD_GRANTER             Granter = FrontendGetGranter(Frontend);
 
     if (Indirect->Grant)
         GranterPut(Granter, Indirect->Grant);
@@ -309,7 +309,7 @@ BlkifRingGetSegment(
 static VOID
 BlkifRingPutSegment(
     _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SEGMENT    Segment
+    _Inout_ PXENVBD_SEGMENT Segment
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -363,7 +363,7 @@ BlkifRingGetRequest(
 static VOID
 BlkifRingPutRequest(
     _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_REQUEST    Request
+    _Inout_ PXENVBD_REQUEST Request
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -550,15 +550,15 @@ BlkifRingDebugCallback(
 
 static DECLSPEC_NOINLINE VOID
 __BlkifRingCompleteSrb(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _In_ PXENVBD_SRBEXT         SrbExt
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PXENVBD_TARGET          Target = FrontendGetTarget(Frontend);
-    PXENVBD_ADAPTER         Adapter = TargetGetAdapter(Target);
-    PSCSI_REQUEST_BLOCK     Srb = SrbExt->Srb;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PXENVBD_TARGET              Target = FrontendGetTarget(Frontend);
+    PXENVBD_ADAPTER             Adapter = TargetGetAdapter(Target);
+    PSCSI_REQUEST_BLOCK         Srb = SrbExt->Srb;
 
     if (Srb->SrbStatus == SRB_STATUS_PENDING) {
         // SRB has not hit a failure condition (BLKIF_RSP_ERROR | 
BLKIF_RSP_EOPNOTSUPP)
@@ -599,8 +599,8 @@ BlkifRingUnprepareRequest(
 
 static FORCEINLINE VOID
 BlkifRingQueueRequests(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PLIST_ENTRY        List
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _In_ PLIST_ENTRY            List
     )
 {
     for (;;) {
@@ -622,8 +622,8 @@ BlkifRingQueueRequests(
 static BOOLEAN
 BlkifRingPrepareSegment(
     _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SEGMENT    Segment,
-    _In_ PXENVBD_SRBEXT     SrbExt,
+    _Inout_ PXENVBD_SEGMENT Segment,
+    _Inout_ PXENVBD_SRBEXT  SrbExt,
     _In_ BOOLEAN            ReadOnly,
     _In_ ULONG              SectorsLeft,
     _Out_ PULONG            SectorsNow
@@ -738,20 +738,20 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareReadWrite(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_SRBEXT      SrbExt
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PSCSI_REQUEST_BLOCK     Srb = SrbExt->Srb;
-    UCHAR                   Operation;
-    BOOLEAN                 ReadOnly;
-    LIST_ENTRY              List;
-    const ULONG             MaxIndirect = 
FrontendGetFeatures(Frontend)->Indirect;
-    const ULONG             SectorShift = 
FrontendGetDiskInfo(Frontend)->SectorShift;
-    ULONG64                 SectorStart = Cdb_LogicalBlock(Srb) << SectorShift;
-    ULONG                   SectorsLeft = Cdb_TransferBlock(Srb) << 
SectorShift;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PSCSI_REQUEST_BLOCK         Srb = SrbExt->Srb;
+    UCHAR                       Operation;
+    BOOLEAN                     ReadOnly;
+    LIST_ENTRY                  List;
+    const ULONG                 MaxIndirect = 
FrontendGetFeatures(Frontend)->Indirect;
+    const ULONG                 SectorShift = 
FrontendGetDiskInfo(Frontend)->SectorShift;
+    ULONG64                     SectorStart = Cdb_LogicalBlock(Srb) << 
SectorShift;
+    ULONG                       SectorsLeft = Cdb_TransferBlock(Srb) << 
SectorShift;
 
     InitializeListHead(&List);
 
@@ -841,18 +841,18 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareUnmap(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_SRBEXT      SrbExt
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PXENVBD_DISKINFO        DiskInfo = FrontendGetDiskInfo(Frontend);
-    PSCSI_REQUEST_BLOCK     Srb = SrbExt->Srb;
-    PUNMAP_LIST_HEADER      Unmap = Srb->DataBuffer;
-    ULONG                   Count;
-    ULONG                   Index;
-    LIST_ENTRY              List;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PXENVBD_DISKINFO            DiskInfo = FrontendGetDiskInfo(Frontend);
+    PSCSI_REQUEST_BLOCK         Srb = SrbExt->Srb;
+    PUNMAP_LIST_HEADER          Unmap = Srb->DataBuffer;
+    ULONG                       Count;
+    ULONG                       Index;
+    LIST_ENTRY                  List;
 
     InitializeListHead(&List);
 
@@ -899,17 +899,17 @@ fail1:
 
 static NTSTATUS
 BlkifRingPrepareSyncCache(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_SRBEXT      SrbExt
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PSCSI_REQUEST_BLOCK     Srb = SrbExt->Srb;
-    PXENVBD_REQUEST         Request;
-    UCHAR                   Operation;
-    LIST_ENTRY              List;
-    const ULONG             SectorShift = 
FrontendGetDiskInfo(Frontend)->SectorShift;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PSCSI_REQUEST_BLOCK         Srb = SrbExt->Srb;
+    PXENVBD_REQUEST             Request;
+    UCHAR                       Operation;
+    LIST_ENTRY                  List;
+    const ULONG                 SectorShift = 
FrontendGetDiskInfo(Frontend)->SectorShift;
 
     InitializeListHead(&List);
     Srb->SrbStatus = SRB_STATUS_PENDING;
@@ -943,8 +943,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 __BlkifRingPrepareSrb(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_SRBEXT      SrbExt
     )
 {
     switch (Cdb_OperationEx(SrbExt->Srb)) {
@@ -971,7 +971,7 @@ static FORCEINLINE VOID
 __BlkifRingInsertRequest(
     _In_ PXENVBD_BLKIF_RING BlkifRing,
     _In_ PXENVBD_REQUEST    Request,
-    _In_ blkif_request_t    *req
+    _Out_ blkif_request_t   *req
     )
 {
     PXENVBD_RING            Ring = BlkifRing->Ring;
@@ -1081,7 +1081,7 @@ __BlkifRingInsertRequest(
 
 static FORCEINLINE NTSTATUS
 __BlkifRingPostRequests(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     for (;;) {
@@ -1142,16 +1142,16 @@ __BlkifRingGetSubmittedRequest(
 
 static FORCEINLINE VOID
 __BlkifRingCompleteResponse(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_REQUEST    Request,
-    _In_ SHORT              Status
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_REQUEST     Request,
+    _In_ SHORT                  Status
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PSCSI_REQUEST_BLOCK     Srb;
-    PXENVBD_SRBEXT          SrbExt;
-    PLIST_ENTRY             ListEntry;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PSCSI_REQUEST_BLOCK         Srb;
+    PXENVBD_SRBEXT              SrbExt;
+    PLIST_ENTRY                 ListEntry;
 
     SrbExt = Request->SrbExt;
     Srb = SrbExt->Srb;
@@ -1211,7 +1211,7 @@ __BlkifRingCompleteResponse(
 
 static FORCEINLINE BOOLEAN
 BlkifRingPoll(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
 #define XENVBD_BATCH(_Ring) (RING_SIZE(&(_Ring)->Front) / 4)
@@ -1287,10 +1287,10 @@ __BlkifRingSend(
 
 static FORCEINLINE VOID
 __BlkifRingPushRequests(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    BOOLEAN                 Notify;
+    BOOLEAN                     Notify;
 
     if (BlkifRing->RequestsPosted == BlkifRing->RequestsPushed)
         return;
@@ -1313,14 +1313,14 @@ __BlkifRingPushRequests(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingSwizzle(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    ULONG_PTR               Old;
-    ULONG_PTR               New;
-    PLIST_ENTRY             ListEntry;
-    LIST_ENTRY              List;
-    ULONG                   Count;
+    ULONG_PTR                   Old;
+    ULONG_PTR                   New;
+    PLIST_ENTRY                 ListEntry;
+    LIST_ENTRY                  List;
+    ULONG                       Count;
 
 #if DBG
     ASSERT3P(BlkifRing->LockThread, == , KeGetCurrentThread());
@@ -1364,7 +1364,7 @@ BlkifRingSwizzle(
 
 static FORCEINLINE VOID
 __BlkifRingAbortQueues(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     ASSERT(!BlkifRing->Enabled);
@@ -1410,10 +1410,10 @@ __BlkifRingAbortQueues(
 
 static DECLSPEC_NOINLINE VOID
 BlkifRingSchedule(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    BOOLEAN                 Polled;
+    BOOLEAN                     Polled;
 
     if (!BlkifRing->Enabled) {
         __BlkifRingAbortQueues(BlkifRing);
@@ -1495,12 +1495,12 @@ BlkifRingSchedule(
 static FORCEINLINE BOOLEAN
 _IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingTryAcquireLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    ULONG_PTR               Old;
-    ULONG_PTR               New;
-    BOOLEAN                 Acquired;
+    ULONG_PTR                   Old;
+    ULONG_PTR                   New;
+    BOOLEAN                     Acquired;
 
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
 
@@ -1524,7 +1524,7 @@ __BlkifRingTryAcquireLock(
 static FORCEINLINE VOID
 _IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingAcquireLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1539,7 +1539,7 @@ __BlkifRingAcquireLock(
 
 static VOID
 BlkifRingAcquireLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     __BlkifRingAcquireLock(BlkifRing);
@@ -1548,12 +1548,12 @@ BlkifRingAcquireLock(
 static FORCEINLINE BOOLEAN
 _IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingTryReleaseLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    ULONG_PTR               Old;
-    ULONG_PTR               New;
-    BOOLEAN                 Released;
+    ULONG_PTR                   Old;
+    ULONG_PTR                   New;
+    BOOLEAN                     Released;
 
 #if DBG
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1584,7 +1584,7 @@ __BlkifRingTryReleaseLock(
 static FORCEINLINE VOID
 _IRQL_requires_(DISPATCH_LEVEL)
 __BlkifRingReleaseLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     ASSERT3U(KeGetCurrentIrql(), == , DISPATCH_LEVEL);
@@ -1602,7 +1602,7 @@ __BlkifRingReleaseLock(
 
 static VOID
 BlkifRingReleaseLock(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     __BlkifRingReleaseLock(BlkifRing);
@@ -1759,13 +1759,13 @@ RingWatchdog(
 
 static FORCEINLINE NTSTATUS
 BlkifRingCacheCreate(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    PXENVBD_RING            Ring;
-    PXENVBD_FRONTEND        Frontend;
-    CHAR                    Name[MAX_NAME_LEN];
-    NTSTATUS                status;
+    PXENVBD_RING                Ring;
+    PXENVBD_FRONTEND            Frontend;
+    CHAR                        Name[MAX_NAME_LEN];
+    NTSTATUS                    status;
 
     Ring = BlkifRing->Ring;
     Frontend = Ring->Frontend;
@@ -1874,10 +1874,10 @@ fail1:
 
 static FORCEINLINE VOID
 BlkifRingCacheDestroy(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    PXENVBD_RING            Ring;
+    PXENVBD_RING                Ring;
 
     Ring = BlkifRing->Ring;
 
@@ -1984,7 +1984,7 @@ fail1:
 
 static VOID
 BlkifRingDestroy(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     ThreadAlert(BlkifRing->WatchdogThread);
@@ -2020,15 +2020,15 @@ BlkifRingDestroy(
 
 static NTSTATUS
 BlkifRingConnect(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_FRONTEND        Frontend = Ring->Frontend;
-    PXENVBD_GRANTER         Granter = FrontendGetGranter(Frontend);
-    CHAR                    Name[MAX_NAME_LEN];
-    ULONG                   Index;
-    NTSTATUS                status;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_FRONTEND            Frontend = Ring->Frontend;
+    PXENVBD_GRANTER             Granter = FrontendGetGranter(Frontend);
+    CHAR                        Name[MAX_NAME_LEN];
+    ULONG                       Index;
+    NTSTATUS                    status;
 
     Trace("====> %u\n", BlkifRing->Index);
     ASSERT(!BlkifRing->Connected);
@@ -2219,7 +2219,7 @@ fail1:
 
 static VOID
 BlkifRingEnable(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
     Trace("====> %u\n", BlkifRing->Index);
@@ -2235,13 +2235,13 @@ BlkifRingEnable(
 
 static VOID
 BlkifRingDisable(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    PXENVBD_RING            Ring;
-    PCHAR                   Buffer;
-    XenbusState             State;
-    NTSTATUS                status;
+    PXENVBD_RING                Ring;
+    PCHAR                       Buffer;
+    XenbusState                 State;
+    NTSTATUS                    status;
 
     Ring = BlkifRing->Ring;
 
@@ -2330,12 +2330,12 @@ BlkifRingDisable(
 
 static VOID
 BlkifRingDisconnect(
-    _In_ PXENVBD_BLKIF_RING BlkifRing
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing
     )
 {
-    PXENVBD_RING            Ring = BlkifRing->Ring;
-    PXENVBD_GRANTER         Granter = FrontendGetGranter(Ring->Frontend);
-    ULONG                   Index;
+    PXENVBD_RING                Ring = BlkifRing->Ring;
+    PXENVBD_GRANTER             Granter = FrontendGetGranter(Ring->Frontend);
+    ULONG                       Index;
 
     Trace("====> %u\n", BlkifRing->Index);
     ASSERT(BlkifRing->Connected);
@@ -2380,14 +2380,14 @@ BlkifRingDisconnect(
 
 static BOOLEAN
 __BlkifRingQueueSrb(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _In_ PXENVBD_SRBEXT         SrbExt
     )
 {
-    PLIST_ENTRY             ListEntry;
-    ULONG_PTR               Old;
-    ULONG_PTR               LockBit;
-    ULONG_PTR               New;
+    PLIST_ENTRY                 ListEntry;
+    ULONG_PTR                   Old;
+    ULONG_PTR                   LockBit;
+    ULONG_PTR                   New;
 
     if (!BlkifRing->Enabled)
         goto fail1;
@@ -2423,8 +2423,8 @@ fail1:
 
 static BOOLEAN
 __BlkifRingQueueShutdown(
-    _In_ PXENVBD_BLKIF_RING BlkifRing,
-    _In_ PXENVBD_SRBEXT     SrbExt
+    _Inout_ PXENVBD_BLKIF_RING  BlkifRing,
+    _Inout_ PXENVBD_SRBEXT      SrbExt
     )
 {
     if (!BlkifRing->Enabled)
@@ -2559,10 +2559,10 @@ fail1:
 
 VOID
 RingDestroy(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     )
 {
-    LONG                Index;
+    LONG                    Index;
 
     Index = (LONG) FrontendGetMaxQueues(Ring->Frontend);
     ASSERT3U(Index, !=, 0);
@@ -2599,13 +2599,13 @@ RingDestroy(
 
 NTSTATUS
 RingConnect(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     )
 {
-    LONG                MaxQueues;
-    LONG                Index;
-    PCHAR               Buffer;
-    NTSTATUS            status;
+    LONG                    MaxQueues;
+    LONG                    Index;
+    PCHAR                   Buffer;
+    NTSTATUS                status;
 
     status = XENBUS_DEBUG(Acquire, &Ring->DebugInterface);
     if (!NT_SUCCESS(status))
@@ -2804,10 +2804,10 @@ RingDisable(
 
 VOID
 RingDisconnect(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     )
 {
-    LONG                Index;
+    LONG                    Index;
 
     XENBUS_DEBUG(Deregister,
                  &Ring->DebugInterface,
diff --git a/src/xenvbd/ring.h b/src/xenvbd/ring.h
index bcf52f8..6dfdb74 100644
--- a/src/xenvbd/ring.h
+++ b/src/xenvbd/ring.h
@@ -46,12 +46,12 @@ RingCreate(
 
 extern VOID
 RingDestroy(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     );
 
 extern NTSTATUS
 RingConnect(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     );
 
 extern NTSTATUS
@@ -72,7 +72,7 @@ RingDisable(
 
 extern VOID
 RingDisconnect(
-    _In_ PXENVBD_RING   Ring
+    _Inout_ PXENVBD_RING    Ring
     );
 
 extern BOOLEAN
diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c
index 0ba09cb..0fe3412 100644
--- a/src/xenvbd/target.c
+++ b/src/xenvbd/target.c
@@ -121,7 +121,7 @@ __PnpStateName(
 _Check_return_
 static FORCEINLINE BOOLEAN
 TargetSetDevicePowerState(
-    _In_ PXENVBD_TARGET     Target,
+    _Inout_ PXENVBD_TARGET  Target,
     _In_ DEVICE_POWER_STATE State
     )
 {
@@ -141,11 +141,11 @@ TargetSetDevicePowerState(
 
 VOID
 TargetSetMissing(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PCSTR              Reason
     )
 {
-    KIRQL               Irql;
+    KIRQL                   Irql;
 
     ASSERT3P(Reason, !=, NULL);
 
@@ -167,7 +167,7 @@ TargetSetMissing(
 
 VOID
 TargetSetDevicePnpState(
-    _In_ PXENVBD_TARGET     Target,
+    _Inout_ PXENVBD_TARGET  Target,
     _In_ DEVICE_PNP_STATE   State
     )
 {
@@ -185,7 +185,7 @@ TargetSetDevicePnpState(
 
 static FORCEINLINE VOID
 __TargetRestoreDevicePnpState(
-    _In_ PXENVBD_TARGET     Target,
+    _Inout_ PXENVBD_TARGET  Target,
     _In_ DEVICE_PNP_STATE   State
     )
 {
@@ -197,8 +197,8 @@ __TargetRestoreDevicePnpState(
 
 VOID
 TargetSetDeviceObject(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PDEVICE_OBJECT DeviceObject
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PDEVICE_OBJECT     DeviceObject
     )
 {
     Verbose("Target[%d] : Setting DeviceObject = 0x%p\n",
@@ -1155,12 +1155,12 @@ TargetShutdown(
 
 VOID
 TargetIssueDeviceEject(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PCSTR              Reason
     )
 {
-    KIRQL               Irql;
-    BOOLEAN             DoEject = FALSE;
+    KIRQL                   Irql;
+    BOOLEAN                 DoEject = FALSE;
 
     KeAcquireSpinLock(&Target->Lock, &Irql);
     if (Target->DeviceObject) {
@@ -1193,7 +1193,7 @@ TargetIssueDeviceEject(
 
 static FORCEINLINE VOID
 __TargetDeviceUsageNotification(
-    _In_ PXENVBD_TARGET             Target,
+    _Inout_ PXENVBD_TARGET          Target,
     _In_ PIRP                       Irp
     )
 {
@@ -1212,11 +1212,11 @@ __TargetDeviceUsageNotification(
 
 static FORCEINLINE VOID
 __TargetCheckEjectPending(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    KIRQL               Irql;
-    BOOLEAN             EjectPending = FALSE;
+    KIRQL                   Irql;
+    BOOLEAN                 EjectPending = FALSE;
 
     KeAcquireSpinLock(&Target->Lock, &Irql);
     if (Target->EjectPending) {
@@ -1236,11 +1236,11 @@ __TargetCheckEjectPending(
 
 static FORCEINLINE VOID
 __TargetCheckEjectFailed(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    KIRQL               Irql;
-    BOOLEAN             EjectFailed = FALSE;
+    KIRQL                   Irql;
+    BOOLEAN                 EjectFailed = FALSE;
 
     KeAcquireSpinLock(&Target->Lock, &Irql);
     if (Target->EjectRequested) {
@@ -1258,7 +1258,7 @@ __TargetCheckEjectFailed(
 
 static FORCEINLINE VOID
 __TargetRemoveDevice(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
     TargetD0ToD3(Target);
@@ -1279,7 +1279,7 @@ __TargetRemoveDevice(
 
 static FORCEINLINE VOID
 __TargetEject(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
     TargetSetMissing(Target, "Ejected");
@@ -1289,12 +1289,12 @@ __TargetEject(
 
 NTSTATUS
 TargetDispatchPnp(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PDEVICE_OBJECT DeviceObject,
-    _In_ PIRP           Irp
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
+    PIO_STACK_LOCATION      StackLocation;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
 
@@ -1382,11 +1382,11 @@ TargetDebugCallback(
 
 NTSTATUS
 TargetD3ToD0(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    NTSTATUS            status;
-    const ULONG         TargetId = TargetGetTargetId(Target);
+    NTSTATUS                status;
+    const ULONG             TargetId = TargetGetTargetId(Target);
 
     if (!TargetSetDevicePowerState(Target, PowerDeviceD0))
         return STATUS_SUCCESS;
@@ -1447,10 +1447,10 @@ fail1:
 
 VOID
 TargetD0ToD3(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    const ULONG         TargetId = TargetGetTargetId(Target);
+    const ULONG             TargetId = TargetGetTargetId(Target);
 
     if (!TargetSetDevicePowerState(Target, PowerDeviceD3))
         return;
@@ -1564,10 +1564,10 @@ fail1:
 
 VOID
 TargetDestroy(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    const ULONG         TargetId = TargetGetTargetId(Target);
+    const ULONG             TargetId = TargetGetTargetId(Target);
 
     Verbose("Target[%d] : Destroying\n", TargetId);
 
@@ -1627,11 +1627,11 @@ TARGET_GET_PROPERTY(DevicePnpState, DEVICE_PNP_STATE)
 
 BOOLEAN
 TargetGetMissing(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     )
 {
-    KIRQL               Irql;
-    BOOLEAN             Missing;
+    KIRQL                   Irql;
+    BOOLEAN                 Missing;
 
     KeAcquireSpinLock(&Target->Lock, &Irql);
     Missing = Target->Missing;
diff --git a/src/xenvbd/target.h b/src/xenvbd/target.h
index ee24736..e7cf2c6 100644
--- a/src/xenvbd/target.h
+++ b/src/xenvbd/target.h
@@ -50,48 +50,48 @@ TargetCreate(
 
 extern VOID
 TargetDestroy(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     );
 
 extern NTSTATUS
 TargetD3ToD0(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     );
 
 extern VOID
 TargetD0ToD3(
-    _In_ PXENVBD_TARGET Target
+    _Inout_ PXENVBD_TARGET  Target
     );
 
 extern NTSTATUS
 TargetDispatchPnp(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PDEVICE_OBJECT DeviceObject,
-    _In_ PIRP           Irp
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ PIRP               Irp
     );
 
 extern VOID
 TargetIssueDeviceEject(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PCSTR              Reason
     );
 
 extern VOID
 TargetSetMissing(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PCSTR              Reason
     );
 
 extern VOID
 TargetSetDevicePnpState(
-    _In_ PXENVBD_TARGET     Target,
+    _Inout_ PXENVBD_TARGET  Target,
     _In_ DEVICE_PNP_STATE   State
     );
 
 extern VOID
 TargetSetDeviceObject(
-    _In_ PXENVBD_TARGET Target,
-    _In_ PDEVICE_OBJECT DeviceObject
+    _Inout_ PXENVBD_TARGET  Target,
+    _In_ PDEVICE_OBJECT     DeviceObject
     );
 
 extern VOID
diff --git a/src/xenvbd/thread.c b/src/xenvbd/thread.c
index 8eded16..22baf10 100644
--- a/src/xenvbd/thread.c
+++ b/src/xenvbd/thread.c
@@ -73,7 +73,7 @@ __ThreadFree(
 
 static FORCEINLINE VOID
 __ThreadWake(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
     ASSERT((Thread->Thread == NULL) || (Thread->Thread != 
KeGetCurrentThread()));
@@ -82,7 +82,7 @@ __ThreadWake(
 
 VOID
 ThreadWake(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
     __ThreadWake(Thread);
@@ -90,7 +90,7 @@ ThreadWake(
 
 static FORCEINLINE VOID
 __ThreadAlert(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
     Thread->Alerted = TRUE;
@@ -99,7 +99,7 @@ __ThreadAlert(
 
 VOID
 ThreadAlert(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
     __ThreadAlert(Thread);
@@ -109,7 +109,7 @@ _Check_return_
 _IRQL_requires_max_(PASSIVE_LEVEL)
 BOOLEAN
 ThreadWait(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -241,10 +241,10 @@ ThreadIsAlerted(
 _IRQL_requires_max_(PASSIVE_LEVEL)
 VOID
 ThreadJoin(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     )
 {
-    LONG                References;
+    LONG                    References;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
     ASSERT3P(KeGetCurrentThread(), !=, Thread->Thread);
diff --git a/src/xenvbd/thread.h b/src/xenvbd/thread.h
index eaa3cab..c878246 100644
--- a/src/xenvbd/thread.h
+++ b/src/xenvbd/thread.h
@@ -64,25 +64,25 @@ ThreadIsAlerted(
 
 extern VOID
 ThreadWake(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     );
 
 extern VOID
 ThreadAlert(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     );
 
 _Check_return_
 _IRQL_requires_max_(PASSIVE_LEVEL)
 extern BOOLEAN
 ThreadWait(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ PXENVBD_THREAD  Thread
     );
 
 _IRQL_requires_max_(PASSIVE_LEVEL)
 extern VOID
 ThreadJoin(
-    _In_ PXENVBD_THREAD Thread
+    _Inout_ 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®.