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

[PATCH 07/11] xenvkbd: Annotate modified parameters as _Out_ or _Inout_


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

Some parameters were annotated _In_ although the function writes them.
Annotate them with their actual direction: context objects (FDO, PDO,
frontend, ring, thread, HID context) as _Inout_, copy destinations as
_Out_writes_bytes_opt_ and the key array as _Inout_updates_.
No functional change.

Assisted-by: claude:claude-opus-5.5
Signed-off-by: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
---
 src/xenvkbd/fdo.c      | 174 ++++++++++++++++++++---------------------
 src/xenvkbd/fdo.h      |  16 ++--
 src/xenvkbd/frontend.c |  64 +++++++--------
 src/xenvkbd/frontend.h |  10 +--
 src/xenvkbd/hid.c      |  12 +--
 src/xenvkbd/hid.h      |   2 +-
 src/xenvkbd/pdo.c      | 114 +++++++++++++--------------
 src/xenvkbd/pdo.h      |  12 +--
 src/xenvkbd/ring.c     |  80 +++++++++----------
 src/xenvkbd/ring.h     |  24 +++---
 src/xenvkbd/thread.c   |  10 +--
 src/xenvkbd/thread.h   |   6 +-
 12 files changed, 262 insertions(+), 262 deletions(-)

diff --git a/src/xenvkbd/fdo.c b/src/xenvkbd/fdo.c
index 481336c..95ed60d 100644
--- a/src/xenvkbd/fdo.c
+++ b/src/xenvkbd/fdo.c
@@ -230,7 +230,7 @@ FdoGetPhysicalDeviceObject(
 _IRQL_requires_(PASSIVE_LEVEL)
 static FORCEINLINE NTSTATUS
 __FdoAcquireLowerBusInterface(
-    _In_ PXENVKBD_FDO       Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -313,7 +313,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoReleaseLowerBusInterface(
-    _In_ PXENVKBD_FDO       Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -619,13 +619,13 @@ FdoForwardIrpSynchronously(
 
 NTSTATUS
 FdoAddPhysicalDeviceObject(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PXENVKBD_PDO       Pdo
     )
 {
-    PDEVICE_OBJECT      DeviceObject;
-    PXENVKBD_DX         Dx;
-    NTSTATUS            status;
+    PDEVICE_OBJECT          DeviceObject;
+    PXENVKBD_DX             Dx;
+    NTSTATUS                status;
 
     DeviceObject = PdoGetDeviceObject(Pdo);
     Dx = (PXENVKBD_DX)DeviceObject->DeviceExtension;
@@ -653,12 +653,12 @@ fail1:
 
 VOID
 FdoRemovePhysicalDeviceObject(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PXENVKBD_PDO       Pdo
     )
 {
-    PDEVICE_OBJECT      DeviceObject;
-    PXENVKBD_DX         Dx;
+    PDEVICE_OBJECT          DeviceObject;
+    PXENVKBD_DX             Dx;
 
     DeviceObject = PdoGetDeviceObject(Pdo);
     Dx = (PXENVKBD_DX)DeviceObject->DeviceExtension;
@@ -704,7 +704,7 @@ __FdoReleaseMutex(
 
 VOID
 FdoReleaseMutex(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
     __FdoReleaseMutex(Fdo);
@@ -820,7 +820,7 @@ done:
 
 static FORCEINLINE PANSI_STRING
 __FdoMultiSzToUpcaseAnsi(
-    _In_ PSTR       Buffer
+    _Inout_ PZZSTR  Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -898,14 +898,14 @@ __FdoFreeAnsi(
 
 static NTSTATUS
 FdoScan(
-    _In_ PXENVKBD_THREAD Self,
-    _In_ PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_FDO        Fdo = Context;
-    PKEVENT             Event;
-    HANDLE              ParametersKey;
-    NTSTATUS            status;
+    PXENVKBD_FDO            Fdo = Context;
+    PKEVENT                 Event;
+    HANDLE                  ParametersKey;
+    NTSTATUS                status;
 
     Trace("====>\n");
 
@@ -1023,7 +1023,7 @@ loop:
 
 static DECLSPEC_NOINLINE VOID
 FdoParseResources(
-    _In_ PXENVKBD_FDO           Fdo,
+    _Inout_ PXENVKBD_FDO        Fdo,
     _In_ PCM_RESOURCE_LIST      RawResourceList,
     _In_ PCM_RESOURCE_LIST      TranslatedResourceList
     )
@@ -1071,7 +1071,7 @@ FdoParseResources(
 static FORCEINLINE BOOLEAN
 __FdoMatchDistribution(
     _In_ PXENVKBD_FDO   Fdo,
-    _In_ PSTR           Buffer
+    _Inout_ PSTR        Buffer
     )
 {
     PCHAR               Vendor;
@@ -1327,7 +1327,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoD0ToD3(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
     Trace("====>\n");
@@ -1367,13 +1367,13 @@ FdoSuspendCallbackLate(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE NTSTATUS
 FdoD3ToD0(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
-    POWER_STATE         PowerState;
-    KIRQL               Irql;
-    PLIST_ENTRY         ListEntry;
-    NTSTATUS            status;
+    POWER_STATE             PowerState;
+    KIRQL                   Irql;
+    PLIST_ENTRY             ListEntry;
+    NTSTATUS                status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
     ASSERT3U(__FdoGetDevicePowerState(Fdo), ==, PowerDeviceD3);
@@ -1460,12 +1460,12 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoD0ToD3(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
-    POWER_STATE         PowerState;
-    PLIST_ENTRY         ListEntry;
-    KIRQL               Irql;
+    POWER_STATE             PowerState;
+    PLIST_ENTRY             ListEntry;
+    KIRQL                   Irql;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
     ASSERT3U(__FdoGetDevicePowerState(Fdo), ==, PowerDeviceD0);
@@ -1542,12 +1542,12 @@ FdoS3ToS4(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStartDevice(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    NTSTATUS                status;
 
     status = FdoForwardIrpSynchronously(Fdo, Irp);
     if (!NT_SUCCESS(status))
@@ -1637,11 +1637,11 @@ FdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStopDevice(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     if (__FdoGetDevicePowerState(Fdo) == PowerDeviceD0)
         FdoD0ToD3(Fdo);
@@ -1735,12 +1735,12 @@ FdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoRemoveDevice(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PLIST_ENTRY         ListEntry;
-    NTSTATUS            status;
+    PLIST_ENTRY             ListEntry;
+    NTSTATUS                status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -1817,16 +1817,16 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryDeviceRelations(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    ULONG               Size;
-    PDEVICE_RELATIONS   Relations;
-    ULONG               Count;
-    PLIST_ENTRY         ListEntry;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    ULONG                   Size;
+    PDEVICE_RELATIONS       Relations;
+    ULONG                   Count;
+    PLIST_ENTRY             ListEntry;
+    NTSTATUS                status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -1943,7 +1943,7 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryCapabilities(
-    _In_ PXENVKBD_FDO       Fdo,
+    _Inout_ PXENVKBD_FDO    Fdo,
     _In_ PIRP               Irp
     )
 {
@@ -1983,7 +1983,7 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDeviceUsageNotification(
-    _In_ PXENVKBD_FDO               Fdo,
+    _Inout_ PXENVKBD_FDO            Fdo,
     _In_ PIRP                       Irp
     )
 {
@@ -2074,13 +2074,13 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPnp(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    UCHAR               MinorFunction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    UCHAR                   MinorFunction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     MinorFunction = StackLocation->MinorFunction;
@@ -2154,13 +2154,13 @@ FdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerUp(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    DEVICE_POWER_STATE  DeviceState;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    DEVICE_POWER_STATE      DeviceState;
+    NTSTATUS                status;
 
     Trace("====>\n");
 
@@ -2192,13 +2192,13 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerDown(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    DEVICE_POWER_STATE  DeviceState;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    DEVICE_POWER_STATE      DeviceState;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     DeviceState = StackLocation->Parameters.Power.State.DeviceState;
@@ -2223,14 +2223,14 @@ __FdoSetDevicePowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePower(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    DEVICE_POWER_STATE  DeviceState;
-    POWER_ACTION        PowerAction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    DEVICE_POWER_STATE      DeviceState;
+    POWER_ACTION            PowerAction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     DeviceState = StackLocation->Parameters.Power.State.DeviceState;
@@ -2791,15 +2791,15 @@ FdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPower(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    UCHAR               MinorFunction;
-    POWER_STATE_TYPE    PowerType;
-    POWER_ACTION        PowerAction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    UCHAR                   MinorFunction;
+    POWER_STATE_TYPE        PowerType;
+    POWER_ACTION            PowerAction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     MinorFunction = StackLocation->MinorFunction;
@@ -2873,12 +2873,12 @@ FdoDispatchDefault(
 
 NTSTATUS
 FdoDispatch(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
 
@@ -3231,11 +3231,11 @@ fail1:
 
 VOID
 FdoDestroy(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     )
 {
-    PXENVKBD_DX         Dx = Fdo->Dx;
-    PDEVICE_OBJECT      FunctionDeviceObject = Dx->DeviceObject;
+    PXENVKBD_DX             Dx = Fdo->Dx;
+    PDEVICE_OBJECT          FunctionDeviceObject = Dx->DeviceObject;
 
     ASSERT(IsListEmpty(&Dx->ListEntry));
     ASSERT3U(Fdo->References, ==, 0);
diff --git a/src/xenvkbd/fdo.h b/src/xenvkbd/fdo.h
index 29a935a..d23cef6 100644
--- a/src/xenvkbd/fdo.h
+++ b/src/xenvkbd/fdo.h
@@ -57,14 +57,14 @@ FdoGetName(
 
 extern NTSTATUS
 FdoAddPhysicalDeviceObject(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PXENVKBD_PDO       Pdo
     );
 
 extern VOID
 FdoRemovePhysicalDeviceObject(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PXENVKBD_PDO       Pdo
     );
 
 extern VOID
@@ -74,7 +74,7 @@ FdoAcquireMutex(
 
 extern VOID
 FdoReleaseMutex(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     );
 
 extern PDEVICE_OBJECT
@@ -124,8 +124,8 @@ FdoDelegateIrp(
 
 extern NTSTATUS
 FdoDispatch(
-    _In_ PXENVKBD_FDO   Fdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_FDO    Fdo,
+    _In_ PIRP               Irp
     );
 
 #define DECLARE_FDO_GET_INTERFACE(_Interface, _Type)    \
@@ -150,7 +150,7 @@ FdoCreate(
 
 extern VOID
 FdoDestroy(
-    _In_ PXENVKBD_FDO   Fdo
+    _Inout_ PXENVKBD_FDO    Fdo
     );
 
 #endif  // _XENVKBD_FDO_H
diff --git a/src/xenvkbd/frontend.c b/src/xenvkbd/frontend.c
index 124fefc..1d9f8f8 100644
--- a/src/xenvkbd/frontend.c
+++ b/src/xenvkbd/frontend.c
@@ -285,13 +285,13 @@ loop:
 
 VOID
 FrontendEjectFailed(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    KIRQL                   Irql;
-    ULONG                   Length;
-    PCHAR                   Path;
-    NTSTATUS                status;
+    KIRQL                       Irql;
+    ULONG                       Length;
+    PCHAR                       Path;
+    NTSTATUS                    status;
 
     KeAcquireSpinLock(&Frontend->Lock, &Irql);
 
@@ -336,7 +336,7 @@ fail1:
 
 static VOID
 FrontendSetOnline(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
     Trace("====>\n");
@@ -348,7 +348,7 @@ FrontendSetOnline(
 
 static VOID
 FrontendSetOffline(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
     Trace("====>\n");
@@ -361,11 +361,11 @@ FrontendSetOffline(
 
 static VOID
 FrontendSetXenbusState(
-    _In_ PXENVKBD_FRONTEND  Frontend,
-    _In_ XenbusState        State
+    _Inout_ PXENVKBD_FRONTEND   Frontend,
+    _In_ XenbusState            State
     )
 {
-    BOOLEAN                 Online;
+    BOOLEAN                     Online;
 
     Trace("%s: ====> %s\n",
           __FrontendGetPath(Frontend),
@@ -487,12 +487,12 @@ FrontendWaitForBackendXenbusStateChange(
 
 static NTSTATUS
 FrontendUpdatePath(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    ULONG                   Length;
-    PCHAR                   Buffer;
-    NTSTATUS                status;
+    ULONG                       Length;
+    PCHAR                       Buffer;
+    NTSTATUS                    status;
 
     status = XENBUS_STORE(Read,
                           &Frontend->StoreInterface,
@@ -553,11 +553,11 @@ fail1:
 
 static NTSTATUS
 FrontendClose(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    XenbusState             State;
-    NTSTATUS                status;
+    XenbusState                 State;
+    NTSTATUS                    status;
 
     Trace("=====>\n");
     if (Frontend->Watch)
@@ -618,11 +618,11 @@ fail1:
 
 static NTSTATUS
 FrontendPrepare(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    XenbusState             State;
-    NTSTATUS                status;
+    XenbusState                 State;
+    NTSTATUS                    status;
 
     Trace("=====>\n");
 
@@ -667,11 +667,11 @@ fail1:
 
 static NTSTATUS
 FrontendConnect(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    XenbusState             State;
-    NTSTATUS                status;
+    XenbusState                 State;
+    NTSTATUS                    status;
 
     Trace("=====>\n");
 
@@ -790,7 +790,7 @@ FrontendDisable(
 
 NTSTATUS
 FrontendSetState(
-    _In_ PXENVKBD_FRONTEND      Frontend,
+    _Inout_ PXENVKBD_FRONTEND   Frontend,
     _In_ XENVKBD_FRONTEND_STATE State
     )
 {
@@ -938,7 +938,7 @@ FrontendSetState(
 
 static FORCEINLINE VOID
 __FrontendResume(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -949,7 +949,7 @@ __FrontendResume(
 
 static FORCEINLINE VOID
 __FrontendSuspend(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -980,11 +980,11 @@ FrontendSuspendCallbackLate(
 
 NTSTATUS
 FrontendResume(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    KIRQL                   Irql;
-    NTSTATUS                status;
+    KIRQL                       Irql;
+    NTSTATUS                    status;
 
     Trace("====>\n");
 
@@ -1056,10 +1056,10 @@ fail1:
 
 VOID
 FrontendSuspend(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
-    KIRQL                   Irql;
+    KIRQL                       Irql;
 
     Trace("====>\n");
 
@@ -1204,7 +1204,7 @@ fail1:
 
 VOID
 FrontendTeardown(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     )
 {
     Trace("====>\n");
diff --git a/src/xenvkbd/frontend.h b/src/xenvkbd/frontend.h
index e7b6902..0e1258a 100644
--- a/src/xenvkbd/frontend.h
+++ b/src/xenvkbd/frontend.h
@@ -65,28 +65,28 @@ FrontendInitialize(
 
 extern VOID
 FrontendTeardown(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     );
 
 extern VOID
 FrontendEjectFailed(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     );
 
 extern NTSTATUS
 FrontendSetState(
-    _In_ PXENVKBD_FRONTEND      Frontend,
+    _Inout_ PXENVKBD_FRONTEND   Frontend,
     _In_ XENVKBD_FRONTEND_STATE State
     );
 
 extern NTSTATUS
 FrontendResume(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     );
 
 extern VOID
 FrontendSuspend(
-    _In_ PXENVKBD_FRONTEND  Frontend
+    _Inout_ PXENVKBD_FRONTEND   Frontend
     );
 
 extern PXENVKBD_PDO
diff --git a/src/xenvkbd/hid.c b/src/xenvkbd/hid.c
index 4e90ac7..3e1bd53 100644
--- a/src/xenvkbd/hid.c
+++ b/src/xenvkbd/hid.c
@@ -65,11 +65,11 @@ struct _XENVKBD_HID_CONTEXT {
 
 static FORCEINLINE NTSTATUS
 HidCopyBuffer(
-    _In_ PVOID      Buffer,
-    _In_ ULONG      Length,
-    _In_ const VOID *Source,
-    _In_ ULONG      SourceLength,
-    _Out_ PULONG    Returned
+    _Out_writes_bytes_opt_(Length) PVOID    Buffer,
+    _In_ ULONG                              Length,
+    _In_ const VOID                         *Source,
+    _In_ ULONG                              SourceLength,
+    _Out_ PULONG                            Returned
     )
 {
     if (Buffer == NULL)
@@ -656,7 +656,7 @@ HidGetInterface(
 
 VOID
 HidTeardown(
-    _In_ PXENVKBD_HID_CONTEXT   Context
+    _Inout_ PXENVKBD_HID_CONTEXT    Context
     )
 {
     Trace("====>\n");
diff --git a/src/xenvkbd/hid.h b/src/xenvkbd/hid.h
index 1364a66..f2b4089 100644
--- a/src/xenvkbd/hid.h
+++ b/src/xenvkbd/hid.h
@@ -58,7 +58,7 @@ HidGetInterface(
 
 extern VOID
 HidTeardown(
-    _In_ PXENVKBD_HID_CONTEXT   Context
+    _Inout_ PXENVKBD_HID_CONTEXT    Context
     );
 
 // CALLBACKS
diff --git a/src/xenvkbd/pdo.c b/src/xenvkbd/pdo.c
index 5443119..ff2e0be 100644
--- a/src/xenvkbd/pdo.c
+++ b/src/xenvkbd/pdo.c
@@ -199,8 +199,8 @@ __PdoGetDevicePowerState(
 
 static FORCEINLINE VOID
 __PdoSetMissing(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PCSTR              Reason
     )
 {
     Pdo->Reason = Reason;
@@ -209,8 +209,8 @@ __PdoSetMissing(
 
 VOID
 PdoSetMissing(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PCSTR              Reason
     )
 {
     __PdoSetMissing(Pdo, Reason);
@@ -284,7 +284,7 @@ PdoGetName(
 
 static FORCEINLINE BOOLEAN
 __PdoSetEjectRequested(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     )
 {
     return (InterlockedBitTestAndSet(&Pdo->Eject, 0) == 0) ? TRUE : FALSE;
@@ -292,12 +292,12 @@ __PdoSetEjectRequested(
 
 VOID
 PdoRequestEject(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     )
 {
-    PXENVKBD_DX         Dx = Pdo->Dx;
-    PDEVICE_OBJECT      PhysicalDeviceObject = Dx->DeviceObject;
-    PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
+    PXENVKBD_DX             Dx = Pdo->Dx;
+    PDEVICE_OBJECT          PhysicalDeviceObject = Dx->DeviceObject;
+    PXENVKBD_FDO            Fdo = __PdoGetFdo(Pdo);
 
     if (!__PdoSetEjectRequested(Pdo))
         return;
@@ -312,7 +312,7 @@ PdoRequestEject(
 
 static FORCEINLINE BOOLEAN
 __PdoClearEjectRequested(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     )
 {
     return (InterlockedBitTestAndReset(&Pdo->Eject, 0) != 0) ? TRUE : FALSE;
@@ -650,10 +650,10 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoD0ToD3(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     )
 {
-    KIRQL               Irql;
+    KIRQL                   Irql;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -767,11 +767,11 @@ PdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStopDevice(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     if (__PdoGetDevicePowerState(Pdo) != PowerDeviceD0)
         goto done;
@@ -807,11 +807,11 @@ PdoQueryRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoCancelRemoveDevice(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     if (__PdoClearEjectRequested(Pdo))
         FrontendEjectFailed(__PdoGetFrontend(Pdo));
@@ -846,13 +846,13 @@ PdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoRemoveDevice(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
-    BOOLEAN             NeedInvalidate;
-    NTSTATUS            status;
+    PXENVKBD_FDO            Fdo = __PdoGetFdo(Pdo);
+    BOOLEAN                 NeedInvalidate;
+    NTSTATUS                status;
 
     if (__PdoGetDevicePowerState(Pdo) != PowerDeviceD0)
         goto done;
@@ -1457,12 +1457,12 @@ PdoDeviceUsageNotification(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoEject(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
-    NTSTATUS            status;
+    PXENVKBD_FDO            Fdo = __PdoGetFdo(Pdo);
+    NTSTATUS                status;
 
     Trace("%s\n", __PdoGetName(Pdo));
 
@@ -1486,13 +1486,13 @@ PdoEject(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPnp(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    UCHAR               MinorFunction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    UCHAR                   MinorFunction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     MinorFunction = StackLocation->MinorFunction;
@@ -1591,14 +1591,14 @@ PdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __PdoSetDevicePower(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    DEVICE_POWER_STATE  DeviceState;
-    POWER_ACTION        PowerAction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    DEVICE_POWER_STATE      DeviceState;
+    POWER_ACTION            PowerAction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     DeviceState = StackLocation->Parameters.Power.State.DeviceState;
@@ -1779,14 +1779,14 @@ PdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoSetPower(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    POWER_STATE_TYPE    PowerType;
-    POWER_ACTION        PowerAction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    POWER_STATE_TYPE        PowerType;
+    POWER_ACTION            PowerAction;
+    NTSTATUS                status;
     
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     PowerType = StackLocation->Parameters.Power.Type;
@@ -1856,13 +1856,13 @@ PdoQueryPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPower(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    UCHAR               MinorFunction;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    UCHAR                   MinorFunction;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
     MinorFunction = StackLocation->MinorFunction;
@@ -1903,12 +1903,12 @@ PdoDispatchDefault(
 
 NTSTATUS
 PdoDispatch(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     )
 {
-    PIO_STACK_LOCATION  StackLocation;
-    NTSTATUS            status;
+    PIO_STACK_LOCATION      StackLocation;
+    NTSTATUS                status;
 
     StackLocation = IoGetCurrentIrpStackLocation(Irp);
 
@@ -2093,12 +2093,12 @@ fail1:
 
 VOID
 PdoDestroy(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     )
 {
-    PXENVKBD_DX         Dx = Pdo->Dx;
-    PDEVICE_OBJECT      PhysicalDeviceObject = Dx->DeviceObject;
-    PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
+    PXENVKBD_DX             Dx = Pdo->Dx;
+    PDEVICE_OBJECT          PhysicalDeviceObject = Dx->DeviceObject;
+    PXENVKBD_FDO            Fdo = __PdoGetFdo(Pdo);
 
     ASSERT3U(__PdoGetDevicePnpState(Pdo), ==, Deleted);
 
diff --git a/src/xenvkbd/pdo.h b/src/xenvkbd/pdo.h
index 1df1fc2..beb88bc 100644
--- a/src/xenvkbd/pdo.h
+++ b/src/xenvkbd/pdo.h
@@ -52,8 +52,8 @@ PdoGetDevicePnpState(
 
 extern VOID
 PdoSetMissing(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PCSTR          Reason
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PCSTR              Reason
     );
 
 extern BOOLEAN
@@ -63,7 +63,7 @@ PdoIsMissing(
 
 extern VOID
 PdoRequestEject(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     );
 
 extern BOOLEAN
@@ -138,7 +138,7 @@ PdoSuspend(
 
 extern VOID
 PdoDestroy(
-    _In_ PXENVKBD_PDO   Pdo
+    _Inout_ PXENVKBD_PDO    Pdo
     );
 
 #include "frontend.h"
@@ -157,8 +157,8 @@ PdoGetHidContext(
 
 extern NTSTATUS
 PdoDispatch(
-    _In_ PXENVKBD_PDO   Pdo,
-    _In_ PIRP           Irp
+    _Inout_ PXENVKBD_PDO    Pdo,
+    _In_ PIRP               Irp
     );
 
 #endif  // _XENVKBD_PDO_H
diff --git a/src/xenvkbd/ring.c b/src/xenvkbd/ring.c
index 70a069c..a4f5769 100644
--- a/src/xenvkbd/ring.c
+++ b/src/xenvkbd/ring.c
@@ -109,11 +109,11 @@ __RingFree(
 
 static FORCEINLINE NTSTATUS
 __RingCopyBuffer(
-    _In_ PVOID      Buffer,
-    _In_ ULONG      Length,
-    _In_ const VOID *Source,
-    _In_ ULONG      SourceLength,
-    _Out_ PULONG    Returned
+    _Out_writes_bytes_opt_(Length) PVOID    Buffer,
+    _In_ ULONG                              Length,
+    _In_ const VOID                         *Source,
+    _In_ ULONG                              SourceLength,
+    _Out_ PULONG                            Returned
     )
 {
     if (Buffer == NULL)
@@ -148,13 +148,13 @@ SetBit(
 
 static FORCEINLINE VOID
 SetArray(
-    _In_ PUCHAR     Array,
-    _In_ ULONG      Size,
-    _In_ UCHAR      Value,
-    _In_ BOOLEAN    Pressed
+    _Inout_updates_(Size) PUCHAR    Array,
+    _In_ ULONG                      Size,
+    _In_ UCHAR                      Value,
+    _In_ BOOLEAN                    Pressed
     )
 {
-    ULONG           Idx;
+    ULONG                           Idx;
     if (Pressed) {
         for (Idx = 0; Idx < Size; ++Idx) {
             if (Array[Idx] == Value)
@@ -194,7 +194,7 @@ static struct _KEY_CODE_TO_USAGE KeyCodeToUsageTable[] = {
 #undef DEFINE_USAGE
 
 static VOID RingBuildKeyCodeToUsageMapping(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING Ring
     )
 {
     ULONG               Index;
@@ -240,10 +240,10 @@ __RingKeyCodeToUsage(
 
 static FORCEINLINE VOID
 __RingEventMotion(
-    _In_ PXENVKBD_RING  Ring,
-    _In_ LONG           dX,
-    _In_ LONG           dY,
-    _In_ LONG           dZ
+    _Inout_ PXENVKBD_RING   Ring,
+    _In_ LONG               dX,
+    _In_ LONG               dY,
+    _In_ LONG               dZ
     )
 {
     Ring->AbsMouseReport.X = (USHORT)CONSTRAIN(Ring->AbsMouseReport.X + dX, 0, 
32767);
@@ -257,9 +257,9 @@ __RingEventMotion(
 
 static FORCEINLINE VOID
 __RingEventKeypress(
-    _In_ PXENVKBD_RING  Ring,
-    _In_ ULONG          KeyCode,
-    _In_ BOOLEAN        Pressed
+    _Inout_ PXENVKBD_RING   Ring,
+    _In_ ULONG              KeyCode,
+    _In_ BOOLEAN            Pressed
     )
 {
     if (KeyCode >= 0x110 && KeyCode <= 0x114) {
@@ -304,10 +304,10 @@ __RingEventKeypress(
 
 static FORCEINLINE VOID
 __RingEventPosition(
-    _In_ PXENVKBD_RING  Ring,
-    _In_ ULONG          X,
-    _In_ ULONG          Y,
-    _In_ LONG           dZ
+    _Inout_ PXENVKBD_RING   Ring,
+    _In_ ULONG              X,
+    _In_ ULONG              Y,
+    _In_ LONG               dZ
     )
 {
     Ring->AbsMouseReport.X = (USHORT)CONSTRAIN(X, 0, 32767);
@@ -535,11 +535,11 @@ fail1:
 
 static FORCEINLINE VOID
 RingReadFeatures(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
-    PCHAR               Buffer;
-    NTSTATUS            status;
+    PCHAR                   Buffer;
+    NTSTATUS                status;
 
     status = XENBUS_STORE(Read,
                           &Ring->StoreInterface,
@@ -576,12 +576,12 @@ RingReadFeatures(
 
 NTSTATUS
 RingConnect(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
-    PFN_NUMBER          Pfn;
-    PXENVKBD_FRONTEND   Frontend;
-    NTSTATUS            status;
+    PFN_NUMBER              Pfn;
+    PXENVKBD_FRONTEND       Frontend;
+    NTSTATUS                status;
 
     Trace("=====>\n");
     Frontend = Ring->Frontend;
@@ -827,7 +827,7 @@ fail1:
 
 NTSTATUS
 RingEnable(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     Trace("=====>\n");
@@ -843,7 +843,7 @@ RingEnable(
 
 VOID
 RingDisable(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     Trace("=====>\n");
@@ -856,7 +856,7 @@ RingDisable(
 
 VOID
 RingDisconnect(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     Trace("=====>\n");
@@ -908,7 +908,7 @@ RingDisconnect(
 
 VOID
 RingTeardown(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     Trace("=====>\n");
@@ -950,7 +950,7 @@ RingTeardown(
 
 VOID
 RingNotify(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     if (KeInsertQueueDpc(&Ring->Dpc, NULL, NULL))
@@ -959,11 +959,11 @@ RingNotify(
 
 NTSTATUS
 RingGetInputReport(
-    _In_ PXENVKBD_RING  Ring,
-    _In_ ULONG          ReportId,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length,
-    _Out_ PULONG        Returned
+    _In_ PXENVKBD_RING                      Ring,
+    _In_ ULONG                              ReportId,
+    _Out_writes_bytes_opt_(Length) PVOID    Buffer,
+    _In_ ULONG                              Length,
+    _Out_ PULONG                            Returned
     )
 {
     switch (ReportId) {
@@ -986,7 +986,7 @@ RingGetInputReport(
 
 VOID
 RingReadReport(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     )
 {
     // Check for pending reports, push 1 pending report to subscriber
diff --git a/src/xenvkbd/ring.h b/src/xenvkbd/ring.h
index 0ed1693..1781eb2 100644
--- a/src/xenvkbd/ring.h
+++ b/src/xenvkbd/ring.h
@@ -49,7 +49,7 @@ RingInitialize(
 
 extern NTSTATUS
 RingConnect(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern NTSTATUS
@@ -60,41 +60,41 @@ RingStoreWrite(
 
 extern NTSTATUS
 RingEnable(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern VOID
 RingDisable(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern VOID
 RingDisconnect(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern VOID
 RingTeardown(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern VOID
 RingNotify(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 extern NTSTATUS
 RingGetInputReport(
-    _In_ PXENVKBD_RING  Ring,
-    _In_ ULONG          ReportId,
-    _In_ PVOID          Buffer,
-    _In_ ULONG          Length,
-    _Out_ PULONG        Returned
+    _In_ PXENVKBD_RING                      Ring,
+    _In_ ULONG                              ReportId,
+    _Out_writes_bytes_opt_(Length) PVOID    Buffer,
+    _In_ ULONG                              Length,
+    _Out_ PULONG                            Returned
     );
 
 extern VOID
 RingReadReport(
-    _In_ PXENVKBD_RING  Ring
+    _Inout_ PXENVKBD_RING   Ring
     );
 
 #endif  // _XENVKBD_RING_H
diff --git a/src/xenvkbd/thread.c b/src/xenvkbd/thread.c
index 5ff6392..68178d4 100644
--- a/src/xenvkbd/thread.c
+++ b/src/xenvkbd/thread.c
@@ -66,7 +66,7 @@ __ThreadFree(
 
 static FORCEINLINE VOID
 __ThreadWake(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     )
 {
     KeSetEvent(&Thread->Event, IO_NO_INCREMENT, FALSE);
@@ -74,7 +74,7 @@ __ThreadWake(
 
 VOID
 ThreadWake(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     )
 {
     __ThreadWake(Thread);
@@ -82,7 +82,7 @@ ThreadWake(
 
 static FORCEINLINE VOID
 __ThreadAlert(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     )
 {
     Thread->Alerted = TRUE;
@@ -91,7 +91,7 @@ __ThreadAlert(
 
 VOID
 ThreadAlert(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     )
 {
     __ThreadAlert(Thread);
@@ -205,7 +205,7 @@ ThreadIsAlerted(
 
 VOID
 ThreadJoin(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     )
 {
     LONG                    References;
diff --git a/src/xenvkbd/thread.h b/src/xenvkbd/thread.h
index 7f0514b..3d8fc27 100644
--- a/src/xenvkbd/thread.h
+++ b/src/xenvkbd/thread.h
@@ -59,17 +59,17 @@ ThreadIsAlerted(
 
 extern VOID
 ThreadWake(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     );
 
 extern VOID
 ThreadAlert(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     );
 
 extern VOID
 ThreadJoin(
-    _In_ PXENVKBD_THREAD    Thread
+    _Inout_ PXENVKBD_THREAD Thread
     );
 
 #endif  // _XENVKBD_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®.