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

[PATCH 04/11] xenvkbd: convert annotations to SAL 2.0


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
  • Date: Mon, 19 Oct 2026 15:14:30 +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>

Mechanical pass, no functional change.

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

Signed-off-by: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
---
 src/xenvkbd/bus.c      |  64 ++++----
 src/xenvkbd/bus.h      |   6 +-
 src/xenvkbd/driver.c   |  26 +--
 src/xenvkbd/fdo.c      | 360 ++++++++++++++++++++---------------------
 src/xenvkbd/fdo.h      |  70 ++++----
 src/xenvkbd/frontend.c |  98 +++++------
 src/xenvkbd/frontend.h |  28 ++--
 src/xenvkbd/hid.c      | 142 ++++++++--------
 src/xenvkbd/hid.h      |  20 +--
 src/xenvkbd/mrsw.h     |  24 +--
 src/xenvkbd/mutex.h    |  10 +-
 src/xenvkbd/names.h    |  24 +--
 src/xenvkbd/pdo.c      | 274 +++++++++++++++----------------
 src/xenvkbd/pdo.h      |  76 ++++-----
 src/xenvkbd/registry.c | 140 ++++++++--------
 src/xenvkbd/registry.h | 122 +++++++-------
 src/xenvkbd/ring.c     | 122 +++++++-------
 src/xenvkbd/ring.h     |  32 ++--
 src/xenvkbd/thread.c   |  34 ++--
 src/xenvkbd/thread.h   |  18 +--
 20 files changed, 845 insertions(+), 845 deletions(-)

diff --git a/src/xenvkbd/bus.c b/src/xenvkbd/bus.c
index 8bd5b3c..b1a0c73 100644
--- a/src/xenvkbd/bus.c
+++ b/src/xenvkbd/bus.c
@@ -51,7 +51,7 @@ typedef struct _XENVKBD_BUS_CONTEXT {
 
 static FORCEINLINE PVOID
 __BusAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, BUS_TAG);
@@ -59,7 +59,7 @@ __BusAllocate(
 
 static FORCEINLINE VOID
 __BusFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, BUS_TAG);
@@ -67,7 +67,7 @@ __BusFree(
 
 static VOID
 BusReference(
-    IN  PVOID               _Context
+    _In_ PVOID              _Context
     )
 {
     PXENVKBD_BUS_CONTEXT    Context = _Context;
@@ -77,7 +77,7 @@ BusReference(
 
 static VOID
 BusDereference(
-    IN  PVOID               _Context
+    _In_ PVOID              _Context
     )
 {
     PXENVKBD_BUS_CONTEXT    Context = _Context;
@@ -87,14 +87,14 @@ BusDereference(
 }
 
 static
-__drv_functionClass(TRANSLATE_BUS_ADDRESS)
+_Function_class_(TRANSLATE_BUS_ADDRESS)
 BOOLEAN
 BusTranslateAddress(
-    IN      PVOID               _Context,
-    IN      PHYSICAL_ADDRESS    BusAddress,
-    IN      ULONG               Length,
-    IN OUT  PULONG              AddressSpace,
-    OUT     PPHYSICAL_ADDRESS   TranslatedAddress
+    _In_ PVOID                  _Context,
+    _In_ PHYSICAL_ADDRESS       BusAddress,
+    _In_ ULONG                  Length,
+    _Inout_ PULONG              AddressSpace,
+    _Out_ PPHYSICAL_ADDRESS     TranslatedAddress
     )
 {
     PXENVKBD_BUS_CONTEXT        Context = _Context;
@@ -107,15 +107,15 @@ BusTranslateAddress(
 }
 
 static
-__drv_functionClass(GET_DMA_ADAPTER)
+_Function_class_(GET_DMA_ADAPTER)
 PDMA_ADAPTER
 BusGetDmaAdapter(
-    IN  PVOID               _Context,
-    IN  PDEVICE_DESCRIPTION DeviceDescriptor,
-    OUT PULONG              NumberOfMapRegisters
+    _In_ PVOID                  _Context,
+    _In_ PDEVICE_DESCRIPTION    DeviceDescriptor,
+    _Out_ PULONG                NumberOfMapRegisters
     )
 {
-    PXENVKBD_BUS_CONTEXT    Context = _Context;
+    PXENVKBD_BUS_CONTEXT        Context = _Context;
 
     return PdoGetDmaAdapter(Context->Pdo,
                             DeviceDescriptor,
@@ -123,14 +123,14 @@ BusGetDmaAdapter(
 }
 
 static
-__drv_functionClass(GET_SET_DEVICE_DATA)
+_Function_class_(GET_SET_DEVICE_DATA)
 ULONG
 BusSetData(
-    IN  PVOID               _Context,
-    IN  ULONG               DataType,
-    IN  PVOID               Buffer,
-    IN  ULONG               Offset,
-    IN  ULONG               Length
+    _In_ PVOID              _Context,
+    _In_ ULONG              DataType,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Offset,
+    _In_ ULONG              Length
     )
 {
     PXENVKBD_BUS_CONTEXT    Context = _Context;
@@ -143,14 +143,14 @@ BusSetData(
 }
 
 static
-__drv_functionClass(GET_SET_DEVICE_DATA)
+_Function_class_(GET_SET_DEVICE_DATA)
 ULONG
 BusGetData(
-    IN  PVOID               _Context,
-    IN  ULONG               DataType,
-    IN  PVOID               Buffer,
-    IN  ULONG               Offset,
-    IN  ULONG               Length
+    _In_ PVOID              _Context,
+    _In_ ULONG              DataType,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Offset,
+    _In_ ULONG              Length
     )
 {
     PXENVKBD_BUS_CONTEXT    Context = _Context;
@@ -164,12 +164,12 @@ BusGetData(
 
 NTSTATUS
 BusInitialize(
-    IN  PXENVKBD_PDO            Pdo,
-    OUT PBUS_INTERFACE_STANDARD Interface
+    _In_ PXENVKBD_PDO               Pdo,
+    _Out_ PBUS_INTERFACE_STANDARD   Interface
     )
 {
-    PXENVKBD_BUS_CONTEXT        Context;
-    NTSTATUS                    status;
+    PXENVKBD_BUS_CONTEXT            Context;
+    NTSTATUS                        status;
 
     Trace("====>\n");
 
@@ -203,7 +203,7 @@ fail1:
 
 VOID
 BusTeardown(
-    IN OUT  PBUS_INTERFACE_STANDARD Interface
+    _Inout_ PBUS_INTERFACE_STANDARD Interface
     )
 {
     PXENVKBD_BUS_CONTEXT            Context = Interface->Context;
diff --git a/src/xenvkbd/bus.h b/src/xenvkbd/bus.h
index 99a58a7..85285d7 100644
--- a/src/xenvkbd/bus.h
+++ b/src/xenvkbd/bus.h
@@ -40,13 +40,13 @@
 
 extern NTSTATUS
 BusInitialize(
-    IN  PXENVKBD_PDO            Pdo,
-    OUT PBUS_INTERFACE_STANDARD Interface
+    _In_ PXENVKBD_PDO               Pdo,
+    _Out_ PBUS_INTERFACE_STANDARD   Interface
     );
 
 extern VOID
 BusTeardown(
-    IN OUT  PBUS_INTERFACE_STANDARD Interface
+    _Inout_ PBUS_INTERFACE_STANDARD Interface
     );
 
 #endif  // _XENVKBD_BUS_H
diff --git a/src/xenvkbd/driver.c b/src/xenvkbd/driver.c
index 818f9dc..2c1adda 100644
--- a/src/xenvkbd/driver.c
+++ b/src/xenvkbd/driver.c
@@ -71,7 +71,7 @@ DriverSafeMode(
 
 static FORCEINLINE VOID
 __DriverSetDriverObject(
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_ PDRIVER_OBJECT DriverObject
     )
 {
     Driver.DriverObject = DriverObject;
@@ -95,7 +95,7 @@ DriverGetDriverObject(
 
 static FORCEINLINE VOID
 __DriverSetParametersKey(
-    IN  HANDLE  Key
+    _In_ HANDLE Key
     )
 {
     Driver.ParametersKey = Key;
@@ -211,7 +211,7 @@ DRIVER_UNLOAD       DriverUnload;
 
 VOID
 DriverUnload(
-    IN  PDRIVER_OBJECT  DriverObject
+    _In_ PDRIVER_OBJECT DriverObject
     )
 {
     HANDLE              ParametersKey;
@@ -249,8 +249,8 @@ DRIVER_ADD_DEVICE   AddDevice;
 
 NTSTATUS
 AddDevice(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PDEVICE_OBJECT  DeviceObject
+    _In_ PDRIVER_OBJECT DriverObject,
+    _In_ PDEVICE_OBJECT DeviceObject
     )
 {
     NTSTATUS            status;
@@ -277,8 +277,8 @@ DRIVER_DISPATCH Dispatch;
 
 NTSTATUS 
 Dispatch(
-    IN PDEVICE_OBJECT   DeviceObject,
-    IN PIRP             Irp
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp
     )
 {
     PXENVKBD_DX         Dx;
@@ -334,14 +334,14 @@ DRIVER_INITIALIZE   DriverEntry;
 
 NTSTATUS
 DriverEntry(
-    IN  PDRIVER_OBJECT  DriverObject,
-    IN  PUNICODE_STRING RegistryPath
+    _In_ PDRIVER_OBJECT     DriverObject,
+    _In_ PUNICODE_STRING    RegistryPath
     )
 {
-    HANDLE              ServiceKey;
-    HANDLE              ParametersKey;
-    ULONG               Index;
-    NTSTATUS            status;
+    HANDLE                  ServiceKey;
+    HANDLE                  ParametersKey;
+    ULONG                   Index;
+    NTSTATUS                status;
 
     ASSERT3P(__DriverGetDriverObject(), ==, NULL);
 
diff --git a/src/xenvkbd/fdo.c b/src/xenvkbd/fdo.c
index 12b8717..3348862 100644
--- a/src/xenvkbd/fdo.c
+++ b/src/xenvkbd/fdo.c
@@ -108,7 +108,7 @@ struct _XENVKBD_FDO {
 
 static FORCEINLINE PVOID
 __FdoAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, FDO_POOL);
@@ -116,7 +116,7 @@ __FdoAllocate(
 
 static FORCEINLINE VOID
 __FdoFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, FDO_POOL);
@@ -124,8 +124,8 @@ __FdoFree(
 
 static FORCEINLINE VOID
 __FdoSetDevicePnpState(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENVKBD_DX             Dx = Fdo->Dx;
@@ -139,8 +139,8 @@ __FdoSetDevicePnpState(
 
 static FORCEINLINE VOID
 __FdoRestoreDevicePnpState(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENVKBD_DX             Dx = Fdo->Dx;
@@ -151,7 +151,7 @@ __FdoRestoreDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __FdoGetDevicePnpState(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -161,7 +161,7 @@ __FdoGetDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __FdoGetPreviousDevicePnpState(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -171,8 +171,8 @@ __FdoGetPreviousDevicePnpState(
 
 static FORCEINLINE VOID
 __FdoSetDevicePowerState(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  State
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE State
     )
 {
     PXENVKBD_DX             Dx = Fdo->Dx;
@@ -182,7 +182,7 @@ __FdoSetDevicePowerState(
 
 static FORCEINLINE DEVICE_POWER_STATE
 __FdoGetDevicePowerState(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -192,8 +192,8 @@ __FdoGetDevicePowerState(
 
 static FORCEINLINE VOID
 __FdoSetSystemPowerState(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  SYSTEM_POWER_STATE  State
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ SYSTEM_POWER_STATE State
     )
 {
     PXENVKBD_DX             Dx = Fdo->Dx;
@@ -203,7 +203,7 @@ __FdoSetSystemPowerState(
 
 static FORCEINLINE SYSTEM_POWER_STATE
 __FdoGetSystemPowerState(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -213,7 +213,7 @@ __FdoGetSystemPowerState(
 
 static FORCEINLINE PDEVICE_OBJECT
 __FdoGetPhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     return Fdo->PhysicalDeviceObject;
@@ -221,16 +221,16 @@ __FdoGetPhysicalDeviceObject(
 
 PDEVICE_OBJECT
 FdoGetPhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     return __FdoGetPhysicalDeviceObject(Fdo);
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static FORCEINLINE NTSTATUS
 __FdoAcquireLowerBusInterface(
-    IN  PXENVKBD_FDO        Fdo
+    _In_ PXENVKBD_FDO       Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -313,7 +313,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoReleaseLowerBusInterface(
-    IN  PXENVKBD_FDO        Fdo
+    _In_ PXENVKBD_FDO       Fdo
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -332,12 +332,12 @@ __FdoReleaseLowerBusInterface(
 
 PDMA_ADAPTER
 FdoGetDmaAdapter(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  PDEVICE_DESCRIPTION DeviceDescriptor,
-    OUT PULONG              NumberOfMapRegisters
+    _In_ PXENVKBD_FDO           Fdo,
+    _In_ PDEVICE_DESCRIPTION    DeviceDescriptor,
+    _Out_ PULONG                NumberOfMapRegisters
     )
 {
-    PBUS_INTERFACE_STANDARD BusInterface;
+    PBUS_INTERFACE_STANDARD     BusInterface;
 
     BusInterface = Fdo->LowerBusInterface;
     ASSERT(BusInterface != NULL);
@@ -349,11 +349,11 @@ FdoGetDmaAdapter(
 
 BOOLEAN
 FdoTranslateBusAddress(
-    IN      PXENVKBD_FDO        Fdo,
-    IN      PHYSICAL_ADDRESS    BusAddress,
-    IN      ULONG               Length,
-    IN OUT  PULONG              AddressSpace,
-    OUT     PPHYSICAL_ADDRESS   TranslatedAddress
+    _In_ PXENVKBD_FDO           Fdo,
+    _In_ PHYSICAL_ADDRESS       BusAddress,
+    _In_ ULONG                  Length,
+    _Inout_ PULONG              AddressSpace,
+    _Out_ PPHYSICAL_ADDRESS     TranslatedAddress
     )
 {
     PBUS_INTERFACE_STANDARD     BusInterface;
@@ -370,11 +370,11 @@ FdoTranslateBusAddress(
 
 ULONG
 FdoSetBusData(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  ULONG               DataType,
-    IN  PVOID               Buffer,
-    IN  ULONG               Offset,
-    IN  ULONG               Length
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ ULONG              DataType,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Offset,
+    _In_ ULONG              Length
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -391,11 +391,11 @@ FdoSetBusData(
 
 ULONG
 FdoGetBusData(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  ULONG               DataType,
-    IN  PVOID               Buffer,
-    IN  ULONG               Offset,
-    IN  ULONG               Length
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ ULONG              DataType,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Offset,
+    _In_ ULONG              Length
     )
 {
     PBUS_INTERFACE_STANDARD BusInterface;
@@ -412,11 +412,11 @@ FdoGetBusData(
 
 static FORCEINLINE VOID
 __FdoSetVendorName(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  USHORT          DeviceID
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ USHORT         DeviceID
     )
 {
-    NTSTATUS        status;
+    NTSTATUS            status;
 
     status = RtlStringCbPrintfA(Fdo->VendorName,
                                 MAXNAMELEN,
@@ -428,7 +428,7 @@ __FdoSetVendorName(
 
 static FORCEINLINE PCHAR
 __FdoGetVendorName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     return Fdo->VendorName;
@@ -436,7 +436,7 @@ __FdoGetVendorName(
 
 PCHAR
 FdoGetVendorName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     return __FdoGetVendorName(Fdo);
@@ -444,7 +444,7 @@ FdoGetVendorName(
 
 static FORCEINLINE VOID
 __FdoSetName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -459,7 +459,7 @@ __FdoSetName(
 
 static FORCEINLINE PCHAR
 __FdoGetName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
@@ -469,19 +469,19 @@ __FdoGetName(
 
 PCHAR
 FdoGetName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     return __FdoGetName(Fdo);
 }
 
-__drv_functionClass(IO_COMPLETION_ROUTINE)
-__drv_sameIRQL
+_Function_class_(IO_COMPLETION_ROUTINE)
+_IRQL_requires_same_
 static NTSTATUS
 __FdoDelegateIrp(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp,
-    IN  PVOID           Context
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp,
+    _In_ PVOID          Context
     )
 {
     PKEVENT             Event = Context;
@@ -496,8 +496,8 @@ __FdoDelegateIrp(
 
 NTSTATUS
 FdoDelegateIrp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -560,13 +560,13 @@ done:
     return status;
 }
 
-__drv_functionClass(IO_COMPLETION_ROUTINE)
-__drv_sameIRQL
+_Function_class_(IO_COMPLETION_ROUTINE)
+_IRQL_requires_same_
 static NTSTATUS
 __FdoForwardIrpSynchronously(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  PIRP            Irp,
-    IN  PVOID           Context
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP           Irp,
+    _In_ PVOID          Context
     )
 {
     PKEVENT             Event = Context;
@@ -581,8 +581,8 @@ __FdoForwardIrpSynchronously(
 
 static NTSTATUS
 FdoForwardIrpSynchronously(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     KEVENT              Event;
@@ -619,8 +619,8 @@ FdoForwardIrpSynchronously(
 
 NTSTATUS
 FdoAddPhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -653,8 +653,8 @@ fail1:
 
 VOID
 FdoRemovePhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PDEVICE_OBJECT      DeviceObject;
@@ -680,7 +680,7 @@ done:
 
 static FORCEINLINE VOID
 __FdoAcquireMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     AcquireMutex(&Fdo->Mutex);
@@ -688,7 +688,7 @@ __FdoAcquireMutex(
 
 VOID
 FdoAcquireMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     __FdoAcquireMutex(Fdo);
@@ -696,7 +696,7 @@ FdoAcquireMutex(
 
 static FORCEINLINE VOID
 __FdoReleaseMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     ReleaseMutex(&Fdo->Mutex);
@@ -704,7 +704,7 @@ __FdoReleaseMutex(
 
 VOID
 FdoReleaseMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     __FdoReleaseMutex(Fdo);
@@ -715,11 +715,11 @@ FdoReleaseMutex(
 
 static FORCEINLINE BOOLEAN
 __FdoEnumerate(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PANSI_STRING    Devices
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PANSI_STRING   Devices
     )
 {
-    BOOLEAN             NeedInvalidate; 
+    BOOLEAN             NeedInvalidate;
     HANDLE              ParametersKey;
     ULONG               Enumerate;
     PLIST_ENTRY         ListEntry;
@@ -820,7 +820,7 @@ done:
 
 static FORCEINLINE PANSI_STRING
 __FdoMultiSzToUpcaseAnsi(
-    IN  PCHAR       Buffer
+    _In_ PCHAR      Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -885,7 +885,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoFreeAnsi(
-    IN  PANSI_STRING    Ansi
+    _In_ PANSI_STRING   Ansi
     )
 {
     ULONG               Index;
@@ -1023,9 +1023,9 @@ loop:
 
 static DECLSPEC_NOINLINE VOID
 FdoParseResources(
-    IN  PXENVKBD_FDO            Fdo,
-    IN  PCM_RESOURCE_LIST       RawResourceList,
-    IN  PCM_RESOURCE_LIST       TranslatedResourceList
+    _In_ PXENVKBD_FDO           Fdo,
+    _In_ PCM_RESOURCE_LIST      RawResourceList,
+    _In_ PCM_RESOURCE_LIST      TranslatedResourceList
     )
 {
     PCM_PARTIAL_RESOURCE_LIST   RawPartialList;
@@ -1070,8 +1070,8 @@ FdoParseResources(
 
 static FORCEINLINE BOOLEAN
 __FdoMatchDistribution(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PCHAR           Buffer
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PCHAR          Buffer
     )
 {
     PCHAR               Vendor;
@@ -1130,7 +1130,7 @@ fail1:
 
 static VOID
 FdoClearDistribution(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PCHAR               Buffer;
@@ -1193,7 +1193,7 @@ done:
 
 static NTSTATUS
 FdoSetDistribution(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     ULONG               Index;
@@ -1287,7 +1287,7 @@ fail1:
 
 static FORCEINLINE NTSTATUS
 __FdoD3ToD0(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     NTSTATUS            status;
@@ -1327,7 +1327,7 @@ fail1:
 
 static FORCEINLINE VOID
 __FdoD0ToD3(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     Trace("====>\n");
@@ -1352,7 +1352,7 @@ __FdoD0ToD3(
 
 static DECLSPEC_NOINLINE VOID
 FdoSuspendCallbackLate(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVKBD_FDO    Fdo = Argument;
@@ -1367,7 +1367,7 @@ FdoSuspendCallbackLate(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE NTSTATUS
 FdoD3ToD0(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     POWER_STATE         PowerState;
@@ -1460,7 +1460,7 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoD0ToD3(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     POWER_STATE         PowerState;
@@ -1519,7 +1519,7 @@ FdoD0ToD3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoS4ToS3(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -1531,7 +1531,7 @@ FdoS4ToS3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 FdoS3ToS4(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
@@ -1542,8 +1542,8 @@ FdoS3ToS4(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStartDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1602,8 +1602,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryStopDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1619,8 +1619,8 @@ FdoQueryStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoCancelStopDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1637,8 +1637,8 @@ FdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoStopDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1665,8 +1665,8 @@ FdoStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryRemoveDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1682,8 +1682,8 @@ FdoQueryRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoCancelRemoveDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1700,8 +1700,8 @@ FdoCancelRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoSurpriseRemoval(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PLIST_ENTRY         ListEntry;
@@ -1735,8 +1735,8 @@ FdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoRemoveDevice(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PLIST_ENTRY         ListEntry;
@@ -1817,8 +1817,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryDeviceRelations(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1943,8 +1943,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryCapabilities(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1983,8 +1983,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDeviceUsageNotification(
-    IN  PXENVKBD_FDO                Fdo,
-    IN  PIRP                        Irp
+    _In_ PXENVKBD_FDO               Fdo,
+    _In_ PIRP                       Irp
     )
 {
     PIO_STACK_LOCATION              StackLocation;
@@ -2043,8 +2043,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoQueryPnpDeviceState(
-    IN  PXENVKBD_FDO                Fdo,
-    IN  PIRP                        Irp
+    _In_ PXENVKBD_FDO               Fdo,
+    _In_ PIRP                       Irp
     )
 {
     ULONG_PTR                       State;
@@ -2074,8 +2074,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPnp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2154,8 +2154,8 @@ FdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerUp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2192,8 +2192,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePowerDown(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2223,8 +2223,8 @@ __FdoSetDevicePowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoSetDevicePower(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2261,15 +2261,15 @@ done:
     return status;
 }
 
-__drv_functionClass(REQUEST_POWER_COMPLETE)
-__drv_sameIRQL
+_Function_class_(REQUEST_POWER_COMPLETE)
+_IRQL_requires_same_
 VOID
 __FdoRequestSetDevicePower(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  UCHAR               MinorFunction,
-    IN  POWER_STATE         PowerState,
-    IN  PVOID               Context,
-    IN  PIO_STATUS_BLOCK    IoStatus
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ UCHAR              MinorFunction,
+    _In_ POWER_STATE        PowerState,
+    _In_ PVOID              Context,
+    _In_ PIO_STATUS_BLOCK   IoStatus
     )
 {
     PKEVENT                 Event = Context;
@@ -2285,8 +2285,8 @@ __FdoRequestSetDevicePower(
 
 static VOID
 FdoRequestSetDevicePower(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  DeviceState
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE DeviceState
     )
 {
     POWER_STATE             PowerState;
@@ -2317,8 +2317,8 @@ FdoRequestSetDevicePower(
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPowerUp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
 
@@ -2361,8 +2361,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPowerDown(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2400,8 +2400,8 @@ __FdoSetSystemPowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoSetSystemPower(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2440,8 +2440,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePowerUp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2463,8 +2463,8 @@ __FdoQueryDevicePowerUp(
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePowerDown(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2484,8 +2484,8 @@ __FdoQueryDevicePowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoQueryDevicePower(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2522,15 +2522,15 @@ done:
     return status;
 }
 
-__drv_functionClass(REQUEST_POWER_COMPLETE)
-__drv_sameIRQL
+_Function_class_(REQUEST_POWER_COMPLETE)
+_IRQL_requires_same_
 VOID
 __FdoRequestQueryDevicePower(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  UCHAR               MinorFunction,
-    IN  POWER_STATE         PowerState,
-    IN  PVOID               Context,
-    IN  PIO_STATUS_BLOCK    IoStatus
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ UCHAR              MinorFunction,
+    _In_ POWER_STATE        PowerState,
+    _In_ PVOID              Context,
+    _In_ PIO_STATUS_BLOCK   IoStatus
     )
 {
     PKEVENT                 Event = Context;
@@ -2546,8 +2546,8 @@ __FdoRequestQueryDevicePower(
 
 static VOID
 FdoRequestQueryDevicePower(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  DEVICE_POWER_STATE  DeviceState
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ DEVICE_POWER_STATE DeviceState
     )
 {
     POWER_STATE             PowerState;
@@ -2578,8 +2578,8 @@ FdoRequestQueryDevicePower(
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPowerUp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
 
@@ -2610,8 +2610,8 @@ done:
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPowerDown(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2636,8 +2636,8 @@ __FdoQuerySystemPowerDown(
 
 static FORCEINLINE NTSTATUS
 __FdoQuerySystemPower(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2677,12 +2677,12 @@ done:
 
 static NTSTATUS
 FdoDevicePower(
-    IN  PXENVKBD_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_FDO        Fdo = Context;
-    PKEVENT             Event;
+    PXENVKBD_FDO            Fdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -2734,12 +2734,12 @@ FdoDevicePower(
 
 static NTSTATUS
 FdoSystemPower(
-    IN  PXENVKBD_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_FDO        Fdo = Context;
-    PKEVENT             Event;
+    PXENVKBD_FDO            Fdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -2791,8 +2791,8 @@ FdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchPower(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2859,8 +2859,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 FdoDispatchDefault(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -2873,8 +2873,8 @@ FdoDispatchDefault(
 
 NTSTATUS
 FdoDispatch(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -2899,15 +2899,15 @@ FdoDispatch(
     return status;
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryInterface(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  const GUID      *Guid,
-    IN  ULONG           Version,
-    OUT PINTERFACE      Interface,
-    IN  ULONG           Size,
-    IN  BOOLEAN         Optional
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ const GUID     *Guid,
+    _In_ ULONG          Version,
+    _Out_ PINTERFACE    Interface,
+    _In_ ULONG          Size,
+    _In_ BOOLEAN        Optional
     )
 {
     KEVENT              Event;
@@ -2989,8 +2989,8 @@ fail1:
 #define DEFINE_FDO_GET_INTERFACE(_Interface, _Type)                     \
 VOID                                                                    \
 FdoGet ## _Interface ## Interface(                                      \
-    IN  PXENVKBD_FDO Fdo,                                                \
-    OUT _Type       _Interface ## Interface                             \
+    _In_ PXENVKBD_FDO Fdo,                                                \
+    _Out_ _Type       _Interface ## Interface                             \
     )                                                                   \
 {                                                                       \
     * ## _Interface ## Interface = Fdo-> ## _Interface ## Interface;    \
@@ -3006,7 +3006,7 @@ DEFINE_FDO_GET_INTERFACE(Gnttab, PXENBUS_GNTTAB_INTERFACE)
 
 NTSTATUS
 FdoCreate(
-    IN  PDEVICE_OBJECT      PhysicalDeviceObject
+    _In_ PDEVICE_OBJECT     PhysicalDeviceObject
     )
 {
     PDEVICE_OBJECT          FunctionDeviceObject;
@@ -3231,7 +3231,7 @@ fail1:
 
 VOID
 FdoDestroy(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     )
 {
     PXENVKBD_DX         Dx = Fdo->Dx;
diff --git a/src/xenvkbd/fdo.h b/src/xenvkbd/fdo.h
index b294080..29a935a 100644
--- a/src/xenvkbd/fdo.h
+++ b/src/xenvkbd/fdo.h
@@ -47,92 +47,92 @@
 
 extern PCHAR
 FdoGetVendorName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 extern PCHAR
 FdoGetName(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 extern NTSTATUS
 FdoAddPhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 FdoRemovePhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 FdoAcquireMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 extern VOID
 FdoReleaseMutex(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 extern PDEVICE_OBJECT
 FdoGetPhysicalDeviceObject(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 extern PDMA_ADAPTER
 FdoGetDmaAdapter(
-    IN  PXENVKBD_FDO        Fdo,
-    IN  PDEVICE_DESCRIPTION DeviceDescriptor,
-    OUT PULONG              NumberOfMapRegisters
+    _In_ PXENVKBD_FDO           Fdo,
+    _In_ PDEVICE_DESCRIPTION    DeviceDescriptor,
+    _Out_ PULONG                NumberOfMapRegisters
     );
 
 extern BOOLEAN
 FdoTranslateBusAddress(
-    IN      PXENVKBD_FDO        Fdo,
-    IN      PHYSICAL_ADDRESS    BusAddress,
-    IN      ULONG               Length,
-    IN OUT  PULONG              AddressSpace,
-    OUT     PPHYSICAL_ADDRESS   TranslatedAddress
+    _In_ PXENVKBD_FDO       Fdo,
+    _In_ PHYSICAL_ADDRESS   BusAddress,
+    _In_ ULONG              Length,
+    _Inout_ PULONG          AddressSpace,
+    _Out_ PPHYSICAL_ADDRESS TranslatedAddress
     );
 
 extern ULONG
 FdoSetBusData(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     );
 
 extern ULONG
 FdoGetBusData(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     );
 
 extern NTSTATUS
 FdoDelegateIrp(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     );
 
 extern NTSTATUS
 FdoDispatch(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PIRP           Irp
     );
 
 #define DECLARE_FDO_GET_INTERFACE(_Interface, _Type)    \
 extern VOID                                             \
 FdoGet ## _Interface ## Interface(                      \
-    IN  PXENVKBD_FDO Fdo,                                \
-    OUT _Type       _Interface ## Interface             \
+    _In_ PXENVKBD_FDO Fdo,                                \
+    _Out_ _Type       _Interface ## Interface             \
     );
 
 DECLARE_FDO_GET_INTERFACE(Debug, PXENBUS_DEBUG_INTERFACE)
@@ -145,12 +145,12 @@ DECLARE_FDO_GET_INTERFACE(Gnttab, 
PXENBUS_GNTTAB_INTERFACE)
 
 extern NTSTATUS
 FdoCreate(
-    IN  PDEVICE_OBJECT  PhysicalDeviceObject
+    _In_ PDEVICE_OBJECT PhysicalDeviceObject
     );
 
 extern VOID
 FdoDestroy(
-    IN  PXENVKBD_FDO    Fdo
+    _In_ PXENVKBD_FDO   Fdo
     );
 
 #endif  // _XENVKBD_FDO_H
diff --git a/src/xenvkbd/frontend.c b/src/xenvkbd/frontend.c
index 7b258ca..124fefc 100644
--- a/src/xenvkbd/frontend.c
+++ b/src/xenvkbd/frontend.c
@@ -72,7 +72,7 @@ struct _XENVKBD_FRONTEND {
 
 static const PCHAR
 FrontendStateName(
-    IN  XENVKBD_FRONTEND_STATE  State
+    _In_ XENVKBD_FRONTEND_STATE State
     )
 {
 #define _STATE_NAME(_State)     \
@@ -98,7 +98,7 @@ FrontendStateName(
 
 static FORCEINLINE PVOID
 __FrontendAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, FRONTEND_POOL);
@@ -106,7 +106,7 @@ __FrontendAllocate(
 
 static FORCEINLINE VOID
 __FrontendFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, FRONTEND_POOL);
@@ -114,7 +114,7 @@ __FrontendFree(
 
 static FORCEINLINE PXENVKBD_PDO
 __FrontendGetPdo(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return Frontend->Pdo;
@@ -122,7 +122,7 @@ __FrontendGetPdo(
 
 PXENVKBD_PDO
 FrontendGetPdo(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return __FrontendGetPdo(Frontend);
@@ -130,7 +130,7 @@ FrontendGetPdo(
 
 static FORCEINLINE PCHAR
 __FrontendGetPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return Frontend->Path;
@@ -138,7 +138,7 @@ __FrontendGetPath(
 
 PCHAR
 FrontendGetPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return __FrontendGetPath(Frontend);
@@ -146,7 +146,7 @@ FrontendGetPath(
 
 static FORCEINLINE PCHAR
 __FrontendGetBackendPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return Frontend->BackendPath;
@@ -154,7 +154,7 @@ __FrontendGetBackendPath(
 
 PCHAR
 FrontendGetBackendPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return __FrontendGetBackendPath(Frontend);
@@ -162,7 +162,7 @@ FrontendGetBackendPath(
 
 static FORCEINLINE USHORT
 __FrontendGetBackendDomain(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return Frontend->BackendDomain;
@@ -170,7 +170,7 @@ __FrontendGetBackendDomain(
 
 USHORT
 FrontendGetBackendDomain(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return __FrontendGetBackendDomain(Frontend);
@@ -179,7 +179,7 @@ FrontendGetBackendDomain(
 #define DEFINE_FRONTEND_GET_FUNCTION(_Function, _Type)  \
 static FORCEINLINE _Type                                \
 __FrontendGet ## _Function(                             \
-    IN  PXENVKBD_FRONTEND   Frontend                    \
+    _In_ PXENVKBD_FRONTEND   Frontend                    \
     )                                                   \
 {                                                       \
     return Frontend-> ## _Function;                     \
@@ -187,7 +187,7 @@ __FrontendGet ## _Function(                             \
                                                         \
 _Type                                                   \
 FrontendGet ## _Function(                               \
-    IN  PXENVKBD_FRONTEND   Frontend                    \
+    _In_ PXENVKBD_FRONTEND   Frontend                    \
     )                                                   \
 {                                                       \
     return __FrontendGet ## _Function ## (Frontend);    \
@@ -197,7 +197,7 @@ DEFINE_FRONTEND_GET_FUNCTION(Ring, PXENVKBD_RING)
 
 static BOOLEAN
 FrontendIsOnline(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     return Frontend->Online;
@@ -205,7 +205,7 @@ FrontendIsOnline(
 
 static BOOLEAN
 FrontendIsBackendOnline(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     PCHAR                   Buffer;
@@ -233,12 +233,12 @@ FrontendIsBackendOnline(
 
 static DECLSPEC_NOINLINE NTSTATUS
 FrontendEject(
-    IN  PXENVKBD_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_FRONTEND    Frontend = Context;
-    PKEVENT             Event;
+    PXENVKBD_FRONTEND       Frontend = Context;
+    PKEVENT                 Event;
 
     Trace("%s: ====>\n", __FrontendGetPath(Frontend));
 
@@ -285,7 +285,7 @@ loop:
 
 VOID
 FrontendEjectFailed(
-    IN PXENVKBD_FRONTEND    Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -336,7 +336,7 @@ fail1:
 
 static VOID
 FrontendSetOnline(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -348,7 +348,7 @@ FrontendSetOnline(
 
 static VOID
 FrontendSetOffline(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -361,8 +361,8 @@ FrontendSetOffline(
 
 static VOID
 FrontendSetXenbusState(
-    IN  PXENVKBD_FRONTEND   Frontend,
-    IN  XenbusState         State
+    _In_ PXENVKBD_FRONTEND  Frontend,
+    _In_ XenbusState        State
     )
 {
     BOOLEAN                 Online;
@@ -393,8 +393,8 @@ FrontendSetXenbusState(
 
 static VOID
 FrontendWaitForBackendXenbusStateChange(
-    IN      PXENVKBD_FRONTEND   Frontend,
-    IN OUT  XenbusState         *State
+    _In_ PXENVKBD_FRONTEND      Frontend,
+    _Inout_ XenbusState         *State
     )
 {
     KEVENT                      Event;
@@ -487,7 +487,7 @@ FrontendWaitForBackendXenbusStateChange(
 
 static NTSTATUS
 FrontendUpdatePath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     ULONG                   Length;
@@ -553,7 +553,7 @@ fail1:
 
 static NTSTATUS
 FrontendClose(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -618,7 +618,7 @@ fail1:
 
 static NTSTATUS
 FrontendPrepare(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -667,7 +667,7 @@ fail1:
 
 static NTSTATUS
 FrontendConnect(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     XenbusState             State;
@@ -744,7 +744,7 @@ fail1:
 
 static VOID
 FrontendDisconnect(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -756,7 +756,7 @@ FrontendDisconnect(
 
 static NTSTATUS
 FrontendEnable(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     NTSTATUS                status;
@@ -778,7 +778,7 @@ fail1:
 
 static VOID
 FrontendDisable(
-    IN  PXENVKBD_FRONTEND    Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
@@ -790,8 +790,8 @@ FrontendDisable(
 
 NTSTATUS
 FrontendSetState(
-    IN  PXENVKBD_FRONTEND       Frontend,
-    IN  XENVKBD_FRONTEND_STATE  State
+    _In_ PXENVKBD_FRONTEND      Frontend,
+    _In_ XENVKBD_FRONTEND_STATE State
     )
 {
     NTSTATUS                    status;
@@ -938,7 +938,7 @@ FrontendSetState(
 
 static FORCEINLINE VOID
 __FrontendResume(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -949,7 +949,7 @@ __FrontendResume(
 
 static FORCEINLINE VOID
 __FrontendSuspend(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL);
@@ -959,7 +959,7 @@ __FrontendSuspend(
 
 static DECLSPEC_NOINLINE VOID
 FrontendSuspendCallbackEarly(
-    IN  PVOID           Argument
+    _In_ PVOID          Argument
     )
 {
     PXENVKBD_FRONTEND   Frontend = Argument;
@@ -969,7 +969,7 @@ FrontendSuspendCallbackEarly(
 
 static DECLSPEC_NOINLINE VOID
 FrontendSuspendCallbackLate(
-    IN  PVOID           Argument
+    _In_ PVOID          Argument
     )
 {
     PXENVKBD_FRONTEND   Frontend = Argument;
@@ -980,7 +980,7 @@ FrontendSuspendCallbackLate(
 
 NTSTATUS
 FrontendResume(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -1056,7 +1056,7 @@ fail1:
 
 VOID
 FrontendSuspend(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     KIRQL                   Irql;
@@ -1095,17 +1095,17 @@ FrontendSuspend(
     Trace("<====\n");
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 FrontendInitialize(
-    IN  PXENVKBD_PDO        Pdo,
-    OUT PXENVKBD_FRONTEND   *Frontend
+    _In_ PXENVKBD_PDO           Pdo,
+    _Outptr_ PXENVKBD_FRONTEND  *Frontend
     )
 {
-    PCHAR                   Name;
-    ULONG                   Length;
-    PCHAR                   Path;
-    NTSTATUS                status;
+    PCHAR                       Name;
+    ULONG                       Length;
+    PCHAR                       Path;
+    NTSTATUS                    status;
 
     Trace("====>\n");
 
@@ -1204,7 +1204,7 @@ fail1:
 
 VOID
 FrontendTeardown(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     )
 {
     Trace("====>\n");
diff --git a/src/xenvkbd/frontend.h b/src/xenvkbd/frontend.h
index d67851b..e7b6902 100644
--- a/src/xenvkbd/frontend.h
+++ b/src/xenvkbd/frontend.h
@@ -56,64 +56,64 @@ typedef enum _XENVKBD_FRONTEND_STATE {
     FRONTEND_ENABLED
 } XENVKBD_FRONTEND_STATE, *PXENVKBD_FRONTEND_STATE;
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 FrontendInitialize(
-    IN  PXENVKBD_PDO        Pdo,
-    OUT PXENVKBD_FRONTEND   *Frontend
+    _In_ PXENVKBD_PDO           Pdo,
+    _Outptr_ PXENVKBD_FRONTEND  *Frontend
     );
 
 extern VOID
 FrontendTeardown(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern VOID
 FrontendEjectFailed(
-    IN PXENVKBD_FRONTEND    Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern NTSTATUS
 FrontendSetState(
-    IN  PXENVKBD_FRONTEND       Frontend,
-    IN  XENVKBD_FRONTEND_STATE  State
+    _In_ PXENVKBD_FRONTEND      Frontend,
+    _In_ XENVKBD_FRONTEND_STATE State
     );
 
 extern NTSTATUS
 FrontendResume(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern VOID
 FrontendSuspend(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern PXENVKBD_PDO
 FrontendGetPdo(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern PCHAR
 FrontendGetPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern PCHAR
 FrontendGetBackendPath(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 extern USHORT
 FrontendGetBackendDomain(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 #include "ring.h"
 
 extern PXENVKBD_RING
 FrontendGetRing(
-    IN  PXENVKBD_FRONTEND   Frontend
+    _In_ PXENVKBD_FRONTEND  Frontend
     );
 
 #endif  // _XENVKBD_FRONTEND_H
diff --git a/src/xenvkbd/hid.c b/src/xenvkbd/hid.c
index 98cac43..bfb16a6 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
+    _In_ PVOID      Buffer,
+    _In_ ULONG      Length,
+    _In_ const VOID *Source,
+    _In_ ULONG      SourceLength,
+    _Out_ PULONG    Returned
     )
 {
     if (Buffer == NULL)
@@ -87,7 +87,7 @@ HidCopyBuffer(
 
 static FORCEINLINE PVOID
 __HidAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, XENVKBD_VKBD_TAG);
@@ -95,7 +95,7 @@ __HidAllocate(
 
 static FORCEINLINE VOID
 __HidFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, XENVKBD_VKBD_TAG);
@@ -103,14 +103,14 @@ __HidFree(
 
 static NTSTATUS
 HidEnable(
-    IN  PINTERFACE          Interface,
-    IN  XENHID_HID_CALLBACK Callback,
-    IN  PVOID               Argument
+    _In_ PINTERFACE             Interface,
+    _In_ XENHID_HID_CALLBACK    Callback,
+    _In_ PVOID                  Argument
     )
 {
-    PXENVKBD_HID_CONTEXT    Context = Interface->Context;
-    KIRQL                   Irql;
-    NTSTATUS                status;
+    PXENVKBD_HID_CONTEXT        Context = Interface->Context;
+    KIRQL                       Irql;
+    NTSTATUS                    status;
 
     Trace("====>\n");
 
@@ -156,7 +156,7 @@ fail1:
 
 static VOID
 HidDisable(
-    IN  PINTERFACE          Interface
+    _In_ PINTERFACE         Interface
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -190,10 +190,10 @@ done:
 
 static NTSTATUS
 HidGetDeviceAttributes(
-    IN  PINTERFACE          Interface,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -216,10 +216,10 @@ HidGetDeviceAttributes(
 
 static NTSTATUS
 HidGetDeviceDescriptor(
-    IN  PINTERFACE          Interface,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -242,10 +242,10 @@ HidGetDeviceDescriptor(
 
 static NTSTATUS
 HidGetReportDescriptor(
-    IN  PINTERFACE          Interface,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -268,11 +268,11 @@ HidGetReportDescriptor(
 
 static NTSTATUS
 HidGetString(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               Identifier,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              Identifier,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -316,11 +316,11 @@ HidGetString(
 
 static NTSTATUS
 HidGetIndexedString(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               Index,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              Index,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -348,11 +348,11 @@ done:
 
 static NTSTATUS
 HidGetFeature(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               ReportId,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              ReportId,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -380,10 +380,10 @@ done:
 
 static NTSTATUS
 HidSetFeature(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               ReportId,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              ReportId,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -410,11 +410,11 @@ done:
 
 static NTSTATUS
 HidGetInputReport(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               ReportId,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length,
-    OUT PULONG              Returned
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              ReportId,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length,
+    _Out_ PULONG            Returned
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -442,10 +442,10 @@ done:
 
 static NTSTATUS
 HidSetOutputReport(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               ReportId,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              ReportId,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -472,7 +472,7 @@ done:
 
 static VOID
 HidReadReport(
-    IN  PINTERFACE          Interface
+    _In_ PINTERFACE         Interface
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -487,10 +487,10 @@ HidReadReport(
 
 static NTSTATUS
 HidWriteReport(
-    IN  PINTERFACE          Interface,
-    IN  ULONG               ReportId,
-    IN  PVOID               Buffer,
-    IN  ULONG               Length
+    _In_ PINTERFACE         Interface,
+    _In_ ULONG              ReportId,
+    _In_ PVOID              Buffer,
+    _In_ ULONG              Length
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -544,7 +544,7 @@ done:
 
 VOID
 HidRelease(
-    IN  PINTERFACE          Interface
+    _In_ PINTERFACE         Interface
     )
 {
     PXENVKBD_HID_CONTEXT    Context = Interface->Context;
@@ -590,11 +590,11 @@ static struct _XENHID_HID_INTERFACE_V1 
HidInterfaceVersion1 = {
 
 NTSTATUS
 HidInitialize(
-    IN  PXENVKBD_PDO            Pdo,
-    OUT PXENVKBD_HID_CONTEXT    *Context
+    _In_ PXENVKBD_PDO               Pdo,
+    _Outptr_ PXENVKBD_HID_CONTEXT   *Context
     )
 {
-    NTSTATUS                    status;
+    NTSTATUS                        status;
 
     Trace("====>\n");
 
@@ -620,10 +620,10 @@ fail1:
 
 NTSTATUS
 HidGetInterface(
-    IN      PXENVKBD_HID_CONTEXT    Context,
-    IN      ULONG                   Version,
-    IN OUT  PINTERFACE              Interface,
-    IN      ULONG                   Size
+    _In_ PXENVKBD_HID_CONTEXT       Context,
+    _In_ ULONG                      Version,
+    _Inout_ PINTERFACE              Interface,
+    _In_ ULONG                      Size
     )
 {
     NTSTATUS                        status;
@@ -656,7 +656,7 @@ HidGetInterface(
 
 VOID
 HidTeardown(
-    IN  PXENVKBD_HID_CONTEXT    Context
+    _In_ PXENVKBD_HID_CONTEXT   Context
     )
 {
     Trace("====>\n");
@@ -674,9 +674,9 @@ HidTeardown(
 
 BOOLEAN
 HidSendReadReport(
-    IN  PXENVKBD_HID_CONTEXT    Context,
-    IN  PVOID                   Buffer,
-    IN  ULONG                   Length
+    _In_ PXENVKBD_HID_CONTEXT   Context,
+    _In_ PVOID                  Buffer,
+    _In_ ULONG                  Length
     )
 {
     if (!Context->Enabled)
diff --git a/src/xenvkbd/hid.h b/src/xenvkbd/hid.h
index 1130415..1364a66 100644
--- a/src/xenvkbd/hid.h
+++ b/src/xenvkbd/hid.h
@@ -44,30 +44,30 @@ typedef struct _XENVKBD_HID_CONTEXT  XENVKBD_HID_CONTEXT, 
*PXENVKBD_HID_CONTEXT;
 
 extern NTSTATUS
 HidInitialize(
-    IN  PXENVKBD_PDO            Pdo,
-    OUT PXENVKBD_HID_CONTEXT    *Context
+    _In_ PXENVKBD_PDO               Pdo,
+    _Outptr_ PXENVKBD_HID_CONTEXT   *Context
     );
 
 extern NTSTATUS
 HidGetInterface(
-    IN      PXENVKBD_HID_CONTEXT    Context,
-    IN      ULONG                   Version,
-    IN OUT  PINTERFACE              Interface,
-    IN      ULONG                   Size
+    _In_ PXENVKBD_HID_CONTEXT   Context,
+    _In_ ULONG                  Version,
+    _Inout_ PINTERFACE          Interface,
+    _In_ ULONG                  Size
     );
 
 extern VOID
 HidTeardown(
-    IN  PXENVKBD_HID_CONTEXT    Context
+    _In_ PXENVKBD_HID_CONTEXT   Context
     );
 
 // CALLBACKS
 
 extern BOOLEAN
 HidSendReadReport(
-    IN  PXENVKBD_HID_CONTEXT    Context,
-    IN  PVOID                   Buffer,
-    IN  ULONG                   Length
+    _In_ PXENVKBD_HID_CONTEXT   Context,
+    _In_ PVOID                  Buffer,
+    _In_ ULONG                  Length
     );
 
 #endif  // _XENVKBD_VKBD_H
diff --git a/src/xenvkbd/mrsw.h b/src/xenvkbd/mrsw.h
index bddc49d..3526a15 100644
--- a/src/xenvkbd/mrsw.h
+++ b/src/xenvkbd/mrsw.h
@@ -57,7 +57,7 @@ C_ASSERT(RTL_FIELD_SIZE(XENVKBD_MRSW_LOCK, Holder) == 
RTL_FIELD_SIZE(XENVKBD_MRS
 
 static FORCEINLINE VOID
 InitializeMrswLock(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     LONG                    Slot;
@@ -72,7 +72,7 @@ InitializeMrswLock(
 
 static FORCEINLINE BOOLEAN
 __ClaimExclusive(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     LONG64                  Old;
@@ -85,11 +85,11 @@ __ClaimExclusive(
 }
 
 static FORCEINLINE KIRQL
-__drv_maxIRQL(APC_LEVEL)
+_IRQL_requires_max_(APC_LEVEL)
 __drv_raisesIRQL(DISPATCH_LEVEL)
 __drv_savesIRQL
 __AcquireMrswLockExclusive(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     KIRQL                   Irql;
@@ -137,12 +137,12 @@ __AcquireMrswLockExclusive(
         } while (FALSE)
 
 static FORCEINLINE VOID
-__drv_maxIRQL(DISPATCH_LEVEL)
-__drv_requiresIRQL(DISPATCH_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
 ReleaseMrswLockExclusive(
-    IN  PXENVKBD_MRSW_LOCK          Lock,
-    IN  __drv_restoresIRQL KIRQL    Irql,
-    IN  BOOLEAN                     Shared
+    _In_ PXENVKBD_MRSW_LOCK         Lock,
+    _In_ __drv_restoresIRQL KIRQL   Irql,
+    _In_ BOOLEAN                    Shared
     )
 {
     LONG                            Slot;
@@ -180,7 +180,7 @@ ReleaseMrswLockExclusive(
 
 static FORCEINLINE LONG
 __ClaimShared(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     LONG                    Slot;
@@ -202,7 +202,7 @@ __ClaimShared(
 
 static FORCEINLINE VOID
 AcquireMrswLockShared(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     KIRQL                   Irql;
@@ -242,7 +242,7 @@ AcquireMrswLockShared(
 
 static FORCEINLINE VOID
 ReleaseMrswLockShared(
-    IN  PXENVKBD_MRSW_LOCK  Lock
+    _In_ PXENVKBD_MRSW_LOCK Lock
     )
 {
     KIRQL                   Irql;
diff --git a/src/xenvkbd/mutex.h b/src/xenvkbd/mutex.h
index d60d9e1..9e66475 100644
--- a/src/xenvkbd/mutex.h
+++ b/src/xenvkbd/mutex.h
@@ -44,7 +44,7 @@ typedef struct _MUTEX {
 
 static FORCEINLINE VOID
 InitializeMutex(
-    IN  PMUTEX  Mutex
+    _In_ PMUTEX Mutex
     )
 {
     RtlZeroMemory(Mutex, sizeof (MUTEX));
@@ -53,9 +53,9 @@ InitializeMutex(
 }
 
 static FORCEINLINE VOID
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 AcquireMutex(
-    IN  PMUTEX  Mutex
+    _In_ PMUTEX Mutex
     )
 {
     (VOID) KeWaitForSingleObject(&Mutex->Event,
@@ -69,9 +69,9 @@ AcquireMutex(
 }
 
 static FORCEINLINE VOID
-__drv_maxIRQL(PASSIVE_LEVEL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
 ReleaseMutex(
-    IN  PMUTEX  Mutex
+    _In_ PMUTEX Mutex
     )
 {
     ASSERT3P(Mutex->Owner, ==, KeGetCurrentThread());
diff --git a/src/xenvkbd/names.h b/src/xenvkbd/names.h
index db3e58d..c651210 100644
--- a/src/xenvkbd/names.h
+++ b/src/xenvkbd/names.h
@@ -38,7 +38,7 @@
 
 static FORCEINLINE const CHAR *
 PowerTypeName(
-    IN  POWER_STATE_TYPE    Type
+    _In_ POWER_STATE_TYPE   Type
     )
 {
 #define _POWER_TYPE_NAME(_Type) \
@@ -58,7 +58,7 @@ PowerTypeName(
 
 static FORCEINLINE const CHAR *
 PowerSystemStateName(
-    IN  SYSTEM_POWER_STATE State
+    _In_ SYSTEM_POWER_STATE State
     )
 {
 #define _POWER_SYSTEM_STATE_NAME(_State)    \
@@ -84,7 +84,7 @@ PowerSystemStateName(
 
 static FORCEINLINE const CHAR *
 PowerDeviceStateName(
-    IN  DEVICE_POWER_STATE State
+    _In_ DEVICE_POWER_STATE State
     )
 {
 #define _POWER_DEVICE_STATE_NAME(_State)    \
@@ -108,7 +108,7 @@ PowerDeviceStateName(
 
 static FORCEINLINE const CHAR *
 PowerActionName(
-    IN  POWER_ACTION    Type
+    _In_ POWER_ACTION   Type
     )
 {
 #define _POWER_ACTION_NAME(_Type)   \
@@ -134,7 +134,7 @@ PowerActionName(
 
 static FORCEINLINE const CHAR *
 PowerMinorFunctionName(
-    IN  ULONG   MinorFunction
+    _In_ ULONG  MinorFunction
     )
 {
 #define _POWER_MINOR_FUNCTION_NAME(_Function)   \
@@ -157,7 +157,7 @@ PowerMinorFunctionName(
 
 static FORCEINLINE const CHAR *
 PnpMinorFunctionName(
-    IN  ULONG   Function
+    _In_ ULONG  Function
     )
 {
 #define _PNP_MINOR_FUNCTION_NAME(_Function) \
@@ -200,7 +200,7 @@ PnpMinorFunctionName(
 
 static FORCEINLINE const CHAR *
 PartialResourceDescriptorTypeName(
-    IN  UCHAR   Type
+    _In_ UCHAR  Type
     )
 {
 #define _PARTIAL_RESOURCE_DESCRIPTOR_TYPE_NAME(_Type)   \
@@ -229,7 +229,7 @@ PartialResourceDescriptorTypeName(
 
 static FORCEINLINE const CHAR *
 DeviceUsageTypeName(
-    IN  DEVICE_USAGE_NOTIFICATION_TYPE  Type
+    _In_ DEVICE_USAGE_NOTIFICATION_TYPE Type
     )
 {
 #define _DEVICE_USAGE_TYPE_NAME(_Type)  \
@@ -251,7 +251,7 @@ DeviceUsageTypeName(
 
 static FORCEINLINE const CHAR *
 InterfaceTypeName(
-    IN  INTERFACE_TYPE  Type
+    _In_ INTERFACE_TYPE Type
     )
 {
 #define _INTERFACE_TYPE_NAME(_Type) \
@@ -289,7 +289,7 @@ InterfaceTypeName(
 
 static FORCEINLINE const CHAR *
 DmaWidthName(
-    IN  DMA_WIDTH   Width
+    _In_ DMA_WIDTH  Width
     )
 {
 #define _DMA_WIDTH_NAME(_Width) \
@@ -313,7 +313,7 @@ DmaWidthName(
 
 static FORCEINLINE const CHAR *
 DmaSpeedName(
-    IN  DMA_SPEED   Speed
+    _In_ DMA_SPEED  Speed
     )
 {
 #define _DMA_SPEED_NAME(_Speed) \
@@ -338,7 +338,7 @@ DmaSpeedName(
 
 static FORCEINLINE const PCHAR
 XenbusStateName(
-    IN  XenbusState   State
+    _In_ XenbusState    State
     )
 {
 #define _STATE_NAME(_State)     \
diff --git a/src/xenvkbd/pdo.c b/src/xenvkbd/pdo.c
index adb8353..5572836 100644
--- a/src/xenvkbd/pdo.c
+++ b/src/xenvkbd/pdo.c
@@ -87,7 +87,7 @@ struct _XENVKBD_PDO {
 
 static FORCEINLINE PVOID
 __PdoAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, PDO_POOL);
@@ -95,7 +95,7 @@ __PdoAllocate(
 
 static FORCEINLINE VOID
 __PdoFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, PDO_POOL);
@@ -103,8 +103,8 @@ __PdoFree(
 
 static FORCEINLINE VOID
 __PdoSetDevicePnpState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENVKBD_DX             Dx = Pdo->Dx;
@@ -118,8 +118,8 @@ __PdoSetDevicePnpState(
 
 VOID
 PdoSetDevicePnpState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     __PdoSetDevicePnpState(Pdo, State);
@@ -127,8 +127,8 @@ PdoSetDevicePnpState(
 
 static FORCEINLINE VOID
 __PdoRestoreDevicePnpState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     )
 {
     PXENVKBD_DX             Dx = Pdo->Dx;
@@ -139,7 +139,7 @@ __PdoRestoreDevicePnpState(
 
 static FORCEINLINE DEVICE_PNP_STATE
 __PdoGetDevicePnpState(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -149,7 +149,7 @@ __PdoGetDevicePnpState(
 
 DEVICE_PNP_STATE
 PdoGetDevicePnpState(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetDevicePnpState(Pdo);
@@ -157,8 +157,8 @@ PdoGetDevicePnpState(
 
 static FORCEINLINE VOID
 __PdoSetSystemPowerState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  SYSTEM_POWER_STATE  State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ SYSTEM_POWER_STATE State
     )
 {
     PXENVKBD_DX             Dx = Pdo->Dx;
@@ -168,7 +168,7 @@ __PdoSetSystemPowerState(
 
 static FORCEINLINE SYSTEM_POWER_STATE
 __PdoGetSystemPowerState(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -178,8 +178,8 @@ __PdoGetSystemPowerState(
 
 static FORCEINLINE VOID
 __PdoSetDevicePowerState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  DEVICE_POWER_STATE  State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ DEVICE_POWER_STATE State
     )
 {
     PXENVKBD_DX             Dx = Pdo->Dx;
@@ -189,7 +189,7 @@ __PdoSetDevicePowerState(
 
 static FORCEINLINE DEVICE_POWER_STATE
 __PdoGetDevicePowerState(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -199,8 +199,8 @@ __PdoGetDevicePowerState(
 
 static FORCEINLINE VOID
 __PdoSetMissing(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ const CHAR     *Reason
     )
 {
     Pdo->Reason = Reason;
@@ -209,8 +209,8 @@ __PdoSetMissing(
 
 VOID
 PdoSetMissing(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ const CHAR     *Reason
     )
 {
     __PdoSetMissing(Pdo, Reason);
@@ -218,7 +218,7 @@ PdoSetMissing(
 
 static FORCEINLINE BOOLEAN
 __PdoIsMissing(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return Pdo->Missing;
@@ -226,7 +226,7 @@ __PdoIsMissing(
 
 BOOLEAN
 PdoIsMissing(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoIsMissing(Pdo);
@@ -234,7 +234,7 @@ PdoIsMissing(
 
 static FORCEINLINE PXENVKBD_FDO
 __PdoGetFdo(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return Pdo->Fdo;
@@ -242,7 +242,7 @@ __PdoGetFdo(
 
 PXENVKBD_FDO
 PdoGetFdo(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetFdo(Pdo);
@@ -250,8 +250,8 @@ PdoGetFdo(
 
 static FORCEINLINE VOID
 __PdoSetName(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PCHAR           Path
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PCHAR          Path
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -266,7 +266,7 @@ __PdoSetName(
 
 static FORCEINLINE PCHAR
 __PdoGetName(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -276,7 +276,7 @@ __PdoGetName(
 
 PCHAR
 PdoGetName(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetName(Pdo);
@@ -284,7 +284,7 @@ PdoGetName(
 
 static FORCEINLINE BOOLEAN
 __PdoSetEjectRequested(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return (InterlockedBitTestAndSet(&Pdo->Eject, 0) == 0) ? TRUE : FALSE;
@@ -292,7 +292,7 @@ __PdoSetEjectRequested(
 
 VOID
 PdoRequestEject(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -312,7 +312,7 @@ PdoRequestEject(
 
 static FORCEINLINE BOOLEAN
 __PdoClearEjectRequested(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return (InterlockedBitTestAndReset(&Pdo->Eject, 0) != 0) ? TRUE : FALSE;
@@ -320,7 +320,7 @@ __PdoClearEjectRequested(
 
 static FORCEINLINE BOOLEAN
 __PdoIsEjectRequested(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     KeMemoryBarrier();
@@ -329,7 +329,7 @@ __PdoIsEjectRequested(
 
 BOOLEAN
 PdoIsEjectRequested(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoIsEjectRequested(Pdo);
@@ -355,7 +355,7 @@ static XENVKBD_PDO_REVISION PdoRevision[] = {
 
 static VOID
 PdoDumpRevisions(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     ULONG               Index;
@@ -397,7 +397,7 @@ PdoDumpRevisions(
 
 static FORCEINLINE PDEVICE_OBJECT
 __PdoGetDeviceObject(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
@@ -407,7 +407,7 @@ __PdoGetDeviceObject(
     
 PDEVICE_OBJECT
 PdoGetDeviceObject(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetDeviceObject(Pdo);
@@ -415,7 +415,7 @@ PdoGetDeviceObject(
 
 static FORCEINLINE PCHAR
 __PdoGetVendorName(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return FdoGetVendorName(__PdoGetFdo(Pdo));
@@ -423,7 +423,7 @@ __PdoGetVendorName(
 
 static FORCEINLINE PXENVKBD_FRONTEND
 __PdoGetFrontend(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return Pdo->Frontend;
@@ -431,7 +431,7 @@ __PdoGetFrontend(
 
 PXENVKBD_FRONTEND
 PdoGetFrontend(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetFrontend(Pdo);
@@ -439,7 +439,7 @@ PdoGetFrontend(
 
 static FORCEINLINE PXENVKBD_HID_CONTEXT
 __PdoGetHidContext(
-    IN  PXENVKBD_PDO Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return Pdo->HidContext;
@@ -447,7 +447,7 @@ __PdoGetHidContext(
 
 PXENVKBD_HID_CONTEXT
 PdoGetHidContext(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return __PdoGetHidContext(Pdo);
@@ -455,9 +455,9 @@ PdoGetHidContext(
 
 PDMA_ADAPTER
 PdoGetDmaAdapter(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PDEVICE_DESCRIPTION DeviceDescriptor,
-    OUT PULONG              NumberOfMapRegisters
+    _In_ PXENVKBD_PDO           Pdo,
+    _In_ PDEVICE_DESCRIPTION    DeviceDescriptor,
+    _Out_ PULONG                NumberOfMapRegisters
     )
 {
     Trace("<===>\n");
@@ -469,11 +469,11 @@ PdoGetDmaAdapter(
 
 BOOLEAN
 PdoTranslateBusAddress(
-    IN      PXENVKBD_PDO        Pdo,
-    IN      PHYSICAL_ADDRESS    BusAddress,
-    IN      ULONG               Length,
-    IN OUT  PULONG              AddressSpace,
-    OUT     PPHYSICAL_ADDRESS   TranslatedAddress
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PHYSICAL_ADDRESS   BusAddress,
+    _In_ ULONG              Length,
+    _Inout_ PULONG          AddressSpace,
+    _Out_ PPHYSICAL_ADDRESS TranslatedAddress
     )
 {
     Trace("<===>\n");
@@ -487,11 +487,11 @@ PdoTranslateBusAddress(
 
 ULONG
 PdoSetBusData(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     )
 {
     Trace("<===>\n");
@@ -505,11 +505,11 @@ PdoSetBusData(
 
 ULONG
 PdoGetBusData(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     )
 {
     Trace("<===>\n");
@@ -523,7 +523,7 @@ PdoGetBusData(
 
 static FORCEINLINE NTSTATUS
 __PdoD3ToD0(
-    IN  PXENVKBD_PDO            Pdo
+    _In_ PXENVKBD_PDO           Pdo
     )
 {
     POWER_STATE                 PowerState;
@@ -559,7 +559,7 @@ fail1:
 
 static FORCEINLINE VOID
 __PdoD0ToD3(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     POWER_STATE         PowerState;
@@ -583,7 +583,7 @@ __PdoD0ToD3(
 
 static DECLSPEC_NOINLINE VOID
 PdoSuspendCallbackLate(
-    IN  PVOID           Argument
+    _In_ PVOID          Argument
     )
 {
     PXENVKBD_PDO        Pdo = Argument;
@@ -598,7 +598,7 @@ PdoSuspendCallbackLate(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE NTSTATUS
 PdoD3ToD0(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     KIRQL               Irql;
@@ -650,7 +650,7 @@ fail1:
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoD0ToD3(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     KIRQL               Irql;
@@ -674,7 +674,7 @@ PdoD0ToD3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoS4ToS3(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     Trace("(%s) ====>\n", __PdoGetName(Pdo));
@@ -690,7 +690,7 @@ PdoS4ToS3(
 // This function must not touch pageable code or data
 static DECLSPEC_NOINLINE VOID
 PdoS3ToS4(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     Trace("(%s) ====>\n", __PdoGetName(Pdo));
@@ -705,8 +705,8 @@ PdoS3ToS4(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStartDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -733,8 +733,8 @@ fail1:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryStopDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -750,8 +750,8 @@ PdoQueryStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoCancelStopDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -767,8 +767,8 @@ PdoCancelStopDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStopDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -790,8 +790,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryRemoveDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -807,8 +807,8 @@ PdoQueryRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoCancelRemoveDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -827,8 +827,8 @@ PdoCancelRemoveDevice(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoSurpriseRemoval(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -846,8 +846,8 @@ PdoSurpriseRemoval(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoRemoveDevice(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
@@ -893,8 +893,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceRelations(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -932,8 +932,8 @@ done:
 
 static NTSTATUS
 PdoDelegateIrp(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     return FdoDelegateIrp(Pdo->Fdo, Irp);
@@ -941,8 +941,8 @@ PdoDelegateIrp(
 
 static NTSTATUS
 PdoQueryBusInterface(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -977,8 +977,8 @@ done:
 
 static NTSTATUS
 PdoQueryHidInterface(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1027,8 +1027,8 @@ struct _INTERFACE_ENTRY PdoInterfaceTable[] = {
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryInterface(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1066,8 +1066,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryCapabilities(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1134,8 +1134,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryDeviceText(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1219,8 +1219,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoReadConfig(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     UNREFERENCED_PARAMETER(Pdo);
@@ -1233,8 +1233,8 @@ PdoReadConfig(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoWriteConfig(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     UNREFERENCED_PARAMETER(Pdo);
@@ -1249,8 +1249,8 @@ PdoWriteConfig(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryId(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1408,8 +1408,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryBusInformation(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PPNP_BUS_INFORMATION    Info;
@@ -1441,8 +1441,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDeviceUsageNotification(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1457,8 +1457,8 @@ PdoDeviceUsageNotification(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoEject(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PXENVKBD_FDO        Fdo = __PdoGetFdo(Pdo);
@@ -1486,8 +1486,8 @@ PdoEject(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPnp(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1591,8 +1591,8 @@ PdoDispatchPnp(
 
 static FORCEINLINE NTSTATUS
 __PdoSetDevicePower(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1642,12 +1642,12 @@ __PdoSetDevicePower(
 
 static NTSTATUS
 PdoDevicePower(
-    IN  PXENVKBD_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_PDO        Pdo = Context;
-    PKEVENT             Event;
+    PXENVKBD_PDO            Pdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -1682,8 +1682,8 @@ PdoDevicePower(
 
 static FORCEINLINE NTSTATUS
 __PdoSetSystemPower(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PIRP                Irp
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PIRP               Irp
     )
 {
     PIO_STACK_LOCATION      StackLocation;
@@ -1739,12 +1739,12 @@ __PdoSetSystemPower(
 
 static NTSTATUS
 PdoSystemPower(
-    IN  PXENVKBD_THREAD Self,
-    IN  PVOID           Context
+    _In_ PXENVKBD_THREAD    Self,
+    _In_ PVOID              Context
     )
 {
-    PXENVKBD_PDO        Pdo = Context;
-    PKEVENT             Event;
+    PXENVKBD_PDO            Pdo = Context;
+    PKEVENT                 Event;
 
     Event = ThreadGetEvent(Self);
 
@@ -1779,8 +1779,8 @@ PdoSystemPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoSetPower(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1838,8 +1838,8 @@ done:
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoQueryPower(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1856,8 +1856,8 @@ PdoQueryPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchPower(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1887,8 +1887,8 @@ PdoDispatchPower(
 
 static DECLSPEC_NOINLINE NTSTATUS
 PdoDispatchDefault(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     NTSTATUS            status;
@@ -1903,8 +1903,8 @@ PdoDispatchDefault(
 
 NTSTATUS
 PdoDispatch(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     )
 {
     PIO_STACK_LOCATION  StackLocation;
@@ -1931,7 +1931,7 @@ PdoDispatch(
 
 NTSTATUS
 PdoResume(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     return FrontendResume(__PdoGetFrontend(Pdo));
@@ -1939,7 +1939,7 @@ PdoResume(
 
 VOID
 PdoSuspend(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     FrontendSuspend(__PdoGetFrontend(Pdo));
@@ -1947,8 +1947,8 @@ PdoSuspend(
 
 NTSTATUS
 PdoCreate(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PANSI_STRING    Path
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PANSI_STRING   Path
     )
 {
     PDEVICE_OBJECT      PhysicalDeviceObject;
@@ -2093,7 +2093,7 @@ fail1:
 
 VOID
 PdoDestroy(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     )
 {
     PXENVKBD_DX         Dx = Pdo->Dx;
diff --git a/src/xenvkbd/pdo.h b/src/xenvkbd/pdo.h
index 166bb27..09f7619 100644
--- a/src/xenvkbd/pdo.h
+++ b/src/xenvkbd/pdo.h
@@ -41,124 +41,124 @@
 
 extern VOID
 PdoSetDevicePnpState(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  DEVICE_PNP_STATE    State
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ DEVICE_PNP_STATE   State
     );
 
 extern DEVICE_PNP_STATE
 PdoGetDevicePnpState(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 PdoSetMissing(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  const CHAR      *Reason
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ const CHAR     *Reason
     );
 
 extern BOOLEAN
 PdoIsMissing(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 PdoRequestEject(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern BOOLEAN
 PdoIsEjectRequested(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern PCHAR
 PdoGetName(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern PXENVKBD_FDO
 PdoGetFdo(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern PDEVICE_OBJECT
 PdoGetDeviceObject(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern PDMA_ADAPTER
 PdoGetDmaAdapter(
-    IN  PXENVKBD_PDO        Pdo,
-    IN  PDEVICE_DESCRIPTION DeviceDescriptor,
-    OUT PULONG              NumberOfMapRegisters
+    _In_ PXENVKBD_PDO           Pdo,
+    _In_ PDEVICE_DESCRIPTION    DeviceDescriptor,
+    _Out_ PULONG                NumberOfMapRegisters
     );
 
 extern BOOLEAN
 PdoTranslateBusAddress(
-    IN      PXENVKBD_PDO        Pdo,
-    IN      PHYSICAL_ADDRESS    BusAddress,
-    IN      ULONG               Length,
-    IN OUT  PULONG              AddressSpace,
-    OUT     PPHYSICAL_ADDRESS   TranslatedAddress
+    _In_ PXENVKBD_PDO       Pdo,
+    _In_ PHYSICAL_ADDRESS   BusAddress,
+    _In_ ULONG              Length,
+    _Inout_ PULONG          AddressSpace,
+    _Out_ PPHYSICAL_ADDRESS TranslatedAddress
     );
 
 extern ULONG
 PdoSetBusData(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     );
 
 extern ULONG
 PdoGetBusData(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  ULONG           DataType,
-    IN  PVOID           Buffer,
-    IN  ULONG           Offset,
-    IN  ULONG           Length
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ ULONG          DataType,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Offset,
+    _In_ ULONG          Length
     );
 
 extern NTSTATUS
 PdoCreate(
-    IN  PXENVKBD_FDO    Fdo,
-    IN  PANSI_STRING    Path
+    _In_ PXENVKBD_FDO   Fdo,
+    _In_ PANSI_STRING   Path
     );
 
 extern NTSTATUS
 PdoResume(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 PdoSuspend(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern VOID
 PdoDestroy(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 #include "frontend.h"
 
 extern PXENVKBD_FRONTEND
 PdoGetFrontend(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 #include "hid.h"
 
 extern PXENVKBD_HID_CONTEXT
 PdoGetHidContext(
-    IN  PXENVKBD_PDO    Pdo
+    _In_ PXENVKBD_PDO   Pdo
     );
 
 extern NTSTATUS
 PdoDispatch(
-    IN  PXENVKBD_PDO    Pdo,
-    IN  PIRP            Irp
+    _In_ PXENVKBD_PDO   Pdo,
+    _In_ PIRP           Irp
     );
 
 #endif  // _XENVKBD_PDO_H
diff --git a/src/xenvkbd/registry.c b/src/xenvkbd/registry.c
index 90a2bbe..e50cefc 100644
--- a/src/xenvkbd/registry.c
+++ b/src/xenvkbd/registry.c
@@ -47,7 +47,7 @@ static IOOPENDRIVERREGISTRYKEY __IoOpenDriverRegistryKey;
 
 static FORCEINLINE PVOID
 __RegistryAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, REGISTRY_TAG);
@@ -55,7 +55,7 @@ __RegistryAllocate(
 
 static FORCEINLINE VOID
 __RegistryFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, REGISTRY_TAG);
@@ -63,10 +63,10 @@ __RegistryFree(
 
 NTSTATUS
 RegistryInitialize(
-    IN PUNICODE_STRING  Path
+    _In_ PUNICODE_STRING    Path
     )
 {
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     ASSERT3P(RegistryPath.Buffer, ==, NULL);
 
@@ -146,14 +146,14 @@ fail1:
 
 NTSTATUS
 RegistryOpenKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     )
 {
-    OBJECT_ATTRIBUTES   Attributes;
-    NTSTATUS            status;
+    OBJECT_ATTRIBUTES       Attributes;
+    NTSTATUS                status;
 
     InitializeObjectAttributes(&Attributes,
                                Path,
@@ -208,19 +208,19 @@ fail1:
 
 NTSTATUS
 RegistryCreateKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ULONG           Options,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ULONG              Options,
+    _Out_ PHANDLE           Key
     )
 {
-    PWSTR               Buffer;
-    HANDLE              Root;
-    PWSTR               ChildPath;
-    PWSTR               ChildName;
-    PWSTR               Context;
-    HANDLE              Child;
-    NTSTATUS            status;
+    PWCHAR                  Buffer;
+    HANDLE                  Root;
+    PWCHAR                  ChildPath;
+    PWCHAR                  ChildName;
+    PWCHAR                  Context;
+    HANDLE                  Child;
+    NTSTATUS                status;
 
     //
     // UNICODE_STRINGs are not guaranteed to have NUL terminated
@@ -308,8 +308,8 @@ fail1:
 
 NTSTATUS
 RegistryOpenServiceKey(
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     )
 {
     return RegistryOpenKey(NULL, &RegistryPath, DesiredAccess, Key);
@@ -325,9 +325,9 @@ RegistryCreateServiceKey(
 
 NTSTATUS
 RegistryOpenSoftwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     )
 {
     NTSTATUS            status;
@@ -347,9 +347,9 @@ fail1:
 
 NTSTATUS
 RegistryOpenHardwareKey(
-    IN  PDEVICE_OBJECT      DeviceObject,
-    IN  ACCESS_MASK         DesiredAccess,
-    OUT PHANDLE             Key
+    _In_ PDEVICE_OBJECT     DeviceObject,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     )
 {
     HANDLE                  SubKey;
@@ -490,8 +490,8 @@ fail1:
 
 NTSTATUS
 RegistryDeleteSubKey(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name
     )
 {
     ANSI_STRING         Ansi;
@@ -531,9 +531,9 @@ fail1:
 
 NTSTATUS
 RegistryEnumerateSubKeys(
-    IN  HANDLE              Key,
-    IN  NTSTATUS            (*Callback)(PVOID, HANDLE, PANSI_STRING),
-    IN  PVOID               Context
+    _In_ HANDLE             Key,
+    _In_ NTSTATUS           (*Callback)(PVOID, HANDLE, PANSI_STRING),
+    _In_ PVOID              Context
     )
 {
     ULONG                   Size;
@@ -634,9 +634,9 @@ fail1:
 
 NTSTATUS
 RegistryEnumerateValues(
-    IN  HANDLE                      Key,
-    IN  NTSTATUS                    (*Callback)(PVOID, HANDLE, PANSI_STRING, 
ULONG),
-    IN  PVOID                       Context
+    _In_ HANDLE                     Key,
+    _In_ NTSTATUS                   (*Callback)(PVOID, HANDLE, PANSI_STRING, 
ULONG),
+    _In_ PVOID                      Context
     )
 {
     ULONG                           Size;
@@ -740,8 +740,8 @@ fail1:
 
 NTSTATUS
 RegistryDeleteValue(
-    IN  PHANDLE         Key,
-    IN  PCHAR           Name
+    _In_ PHANDLE        Key,
+    _In_ PCHAR          Name
     )
 {
     ANSI_STRING         Ansi;
@@ -771,9 +771,9 @@ fail1:
 
 NTSTATUS
 RegistryQueryDwordValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PULONG                      Value
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Out_ PULONG                    Value
     )
 {
     ANSI_STRING                     Ansi;
@@ -911,9 +911,9 @@ fail1:
 
 NTSTATUS
 RegistryUpdateDwordValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  ULONG                       Value
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ ULONG                      Value
     )
 {
     ANSI_STRING                     Ansi;
@@ -967,7 +967,7 @@ fail1:
 
 static PANSI_STRING
 RegistrySzToAnsi(
-    IN  PWCHAR      Buffer
+    _In_ PWCHAR     Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -1006,7 +1006,7 @@ fail1:
 
 static PANSI_STRING
 RegistryMultiSzToAnsi(
-    IN  PWCHAR      Buffer
+    _In_ PWCHAR     Buffer
     )
 {
     PANSI_STRING    Ansi;
@@ -1068,10 +1068,10 @@ fail1:
 
 NTSTATUS
 RegistryQuerySzValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PULONG                      Type OPTIONAL,
-    OUT PANSI_STRING                *Array
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Out_opt_ PULONG                Type,
+    _Outptr_ PANSI_STRING           *Array
     )
 {
     ANSI_STRING                     Ansi;
@@ -1155,10 +1155,10 @@ fail1:
 
 NTSTATUS
 RegistryQueryBinaryValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    OUT PVOID                       *Buffer,
-    OUT PULONG                      Length
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _Outptr_ PVOID                  *Buffer,
+    _Out_ PULONG                    Length
     )
 {
     ANSI_STRING                     Ansi;
@@ -1240,10 +1240,10 @@ fail1:
 
 NTSTATUS
 RegistryUpdateBinaryValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  PVOID                       Buffer,
-    IN  ULONG                       Length
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ PVOID                      Buffer,
+    _In_ ULONG                      Length
     )
 {
     ANSI_STRING                     Ansi;
@@ -1297,8 +1297,8 @@ fail1:
 
 NTSTATUS
 RegistryQueryKeyName(
-    IN  HANDLE              Key,
-    OUT PANSI_STRING        *Array
+    _In_ HANDLE             Key,
+    _Outptr_ PANSI_STRING   *Array
     )
 {
     PKEY_NAME_INFORMATION   Value;
@@ -1352,8 +1352,8 @@ fail1:
 
 NTSTATUS
 RegistryQuerySystemStartOption(
-    IN  PCHAR                       Prefix,
-    OUT PANSI_STRING                *Value
+    _In_ PCHAR                      Prefix,
+    _Outptr_ PANSI_STRING           *Value
     )
 {
     UNICODE_STRING                  Unicode;
@@ -1535,10 +1535,10 @@ fail1:
 
 NTSTATUS
 RegistryUpdateSzValue(
-    IN  HANDLE                      Key,
-    IN  PCHAR                       Name,
-    IN  ULONG                       Type,
-    IN  PANSI_STRING                Array
+    _In_ HANDLE                     Key,
+    _In_ PCHAR                      Name,
+    _In_ ULONG                      Type,
+    _In_ PANSI_STRING               Array
     )
 {
     ANSI_STRING                     Ansi;
@@ -1599,7 +1599,7 @@ fail1:
 
 VOID
 RegistryFreeSzValue(
-    IN  PANSI_STRING    Array
+    _In_ PANSI_STRING   Array
     )
 {
     ULONG               Index;
@@ -1615,7 +1615,7 @@ RegistryFreeSzValue(
 
 VOID
 RegistryFreeBinaryValue(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __RegistryFree(Buffer);
@@ -1623,7 +1623,7 @@ RegistryFreeBinaryValue(
 
 VOID
 RegistryCloseKey(
-    IN  HANDLE  Key
+    _In_ HANDLE Key
     )
 {
     ZwClose(Key);
diff --git a/src/xenvkbd/registry.h b/src/xenvkbd/registry.h
index 08f0def..29ae4e2 100644
--- a/src/xenvkbd/registry.h
+++ b/src/xenvkbd/registry.h
@@ -37,7 +37,7 @@
 
 extern NTSTATUS
 RegistryInitialize(
-    IN PUNICODE_STRING  Path
+    _In_ PUNICODE_STRING    Path
     );
 
 extern VOID
@@ -47,43 +47,43 @@ RegistryTeardown(
 
 extern NTSTATUS
 RegistryOpenKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ACCESS_MASK        DesiredAccess,
+    _Out_ PHANDLE           Key
     );
 
 extern NTSTATUS
 RegistryCreateKey(
-    IN  HANDLE          Parent,
-    IN  PUNICODE_STRING Path,
-    IN  ULONG           Options,
-    OUT PHANDLE         Key
+    _In_ HANDLE             Parent,
+    _In_ PUNICODE_STRING    Path,
+    _In_ ULONG              Options,
+    _Out_ PHANDLE           Key
     );
 
 extern NTSTATUS
 RegistryOpenServiceKey(
-    IN  ACCESS_MASK DesiredAccess,
-    OUT PHANDLE     Key
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
 extern NTSTATUS
 RegistryCreateServiceKey(
-    OUT PHANDLE     Key
+    _Out_ PHANDLE   Key
     );
 
 extern NTSTATUS
 RegistryOpenSoftwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
 extern NTSTATUS
 RegistryOpenHardwareKey(
-    IN  PDEVICE_OBJECT  DeviceObject,
-    IN  ACCESS_MASK     DesiredAccess,
-    OUT PHANDLE         Key
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ ACCESS_MASK    DesiredAccess,
+    _Out_ PHANDLE       Key
     );
 
 extern NTSTATUS
@@ -96,109 +96,109 @@ RegistryOpenSubKey(
 
 extern NTSTATUS
 RegistryCreateSubKey(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name,
-    IN  ULONG       Options,
-    OUT PHANDLE     SubKey
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _In_ ULONG      Options,
+    _Out_ PHANDLE   SubKey
     );
 
 extern NTSTATUS
 RegistryDeleteSubKey(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name
     );
 
 extern NTSTATUS
 RegistryEnumerateSubKeys(
-    IN  HANDLE      Key,
-    IN  NTSTATUS    (*Callback)(PVOID, HANDLE, PANSI_STRING),
-    IN  PVOID       Context
+    _In_ HANDLE     Key,
+    _In_ NTSTATUS   (*Callback)(PVOID, HANDLE, PANSI_STRING),
+    _In_ PVOID      Context
     );
 
 extern NTSTATUS
 RegistryEnumerateValues(
-    IN  HANDLE      Key,
-    IN  NTSTATUS    (*Callback)(PVOID, HANDLE, PANSI_STRING, ULONG),
-    IN  PVOID       Context
+    _In_ HANDLE     Key,
+    _In_ NTSTATUS   (*Callback)(PVOID, HANDLE, PANSI_STRING, ULONG),
+    _In_ PVOID      Context
     );
 
 extern NTSTATUS
 RegistryDeleteValue(
-    IN  HANDLE      Key,
-    IN  PCHAR       Name
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name
     );
 
 extern NTSTATUS
 RegistryQueryDwordValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PULONG          Value
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _Out_ PULONG    Value
     );
     
 extern NTSTATUS
 RegistryUpdateDwordValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  ULONG           Value
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name,
+    _In_ ULONG  Value
     );
     
 extern NTSTATUS
 RegistryQuerySzValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PULONG          Type OPTIONAL,
-    OUT PANSI_STRING    *Array
+    _In_ HANDLE             Key,
+    _In_ PCHAR              Name,
+    _Out_opt_ PULONG        Type,
+    _Outptr_ PANSI_STRING   *Array
     );
 
 extern NTSTATUS
 RegistryQueryBinaryValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    OUT PVOID           *Buffer,
-    OUT PULONG          Length
+    _In_ HANDLE     Key,
+    _In_ PCHAR      Name,
+    _Outptr_ PVOID  *Buffer,
+    _Out_ PULONG    Length
     );
 
 extern NTSTATUS
 RegistryUpdateBinaryValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  PVOID           Buffer,
-    IN  ULONG           Length
+    _In_ HANDLE Key,
+    _In_ PCHAR  Name,
+    _In_ PVOID  Buffer,
+    _In_ ULONG  Length
     );
 
 extern NTSTATUS
 RegistryQueryKeyName(
-    IN  HANDLE              Key,
-    OUT PANSI_STRING        *Array
+    _In_ HANDLE             Key,
+    _Outptr_ PANSI_STRING   *Array
     );
 
 extern NTSTATUS
 RegistryQuerySystemStartOption(
-    IN  PCHAR           Name,
-    OUT PANSI_STRING    *Option
+    _In_ PCHAR              Name,
+    _Outptr_ PANSI_STRING   *Option
     );
 
 extern VOID
 RegistryFreeSzValue(
-    IN  PANSI_STRING    Array
+    _In_ PANSI_STRING   Array
     );
 
 extern VOID
 RegistryFreeBinaryValue(
-    IN  PVOID           Buffer
+    _In_ PVOID  Buffer
     );
 
 extern NTSTATUS
 RegistryUpdateSzValue(
-    IN  HANDLE          Key,
-    IN  PCHAR           Name,
-    IN  ULONG           Type,
-    IN  PANSI_STRING    Array
+    _In_ HANDLE         Key,
+    _In_ PCHAR          Name,
+    _In_ ULONG          Type,
+    _In_ PANSI_STRING   Array
     );
 
 extern VOID
 RegistryCloseKey(
-    IN  HANDLE  Key
+    _In_ HANDLE Key
     );
 
 #endif  // _XENVKBD_REGISTRY_H
diff --git a/src/xenvkbd/ring.c b/src/xenvkbd/ring.c
index a91c31f..70a069c 100644
--- a/src/xenvkbd/ring.c
+++ b/src/xenvkbd/ring.c
@@ -93,7 +93,7 @@ struct _XENVKBD_RING {
 
 static FORCEINLINE PVOID
 __RingAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, XENVKBD_RING_TAG);
@@ -101,7 +101,7 @@ __RingAllocate(
 
 static FORCEINLINE VOID
 __RingFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, XENVKBD_RING_TAG);
@@ -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
+    _In_ PVOID      Buffer,
+    _In_ ULONG      Length,
+    _In_ const VOID *Source,
+    _In_ ULONG      SourceLength,
+    _Out_ PULONG    Returned
     )
 {
     if (Buffer == NULL)
@@ -134,9 +134,9 @@ __RingCopyBuffer(
 
 static FORCEINLINE UCHAR
 SetBit(
-    IN  UCHAR   Value,
-    IN  UCHAR   BitIdx,
-    IN  BOOLEAN Pressed
+    _In_ UCHAR      Value,
+    _In_ UCHAR      BitIdx,
+    _In_ BOOLEAN    Pressed
     )
 {
     if (Pressed) {
@@ -148,13 +148,13 @@ SetBit(
 
 static FORCEINLINE VOID
 SetArray(
-    IN  PUCHAR  Array,
-    IN  ULONG   Size,
-    IN  UCHAR   Value,
-    IN  BOOLEAN Pressed
+    _In_ 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
+    _In_ PXENVKBD_RING  Ring
     )
 {
     ULONG               Index;
@@ -228,8 +228,8 @@ __KeyCodeToKeyName(
 
 static FORCEINLINE USHORT
 __RingKeyCodeToUsage(
-    IN  PXENVKBD_RING   Ring,
-    IN  ULONG           KeyCode
+    _In_ PXENVKBD_RING  Ring,
+    _In_ ULONG          KeyCode
     )
 {
     if (KeyCode < ARRAYSIZE(Ring->KeyCodeToUsageMapping))
@@ -240,10 +240,10 @@ __RingKeyCodeToUsage(
 
 static FORCEINLINE VOID
 __RingEventMotion(
-    IN  PXENVKBD_RING   Ring,
-    IN  LONG            dX,
-    IN  LONG            dY,
-    IN  LONG            dZ
+    _In_ 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
+    _In_ 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
+    _In_ PXENVKBD_RING  Ring,
+    _In_ ULONG          X,
+    _In_ ULONG          Y,
+    _In_ LONG           dZ
     )
 {
     Ring->AbsMouseReport.X = (USHORT)CONSTRAIN(X, 0, 32767);
@@ -321,7 +321,7 @@ __RingEventPosition(
 
 static VOID
 RingAcquireLock(
-    IN  PVOID       Context
+    _In_ PVOID      Context
     )
 {
     PXENVKBD_RING   Ring = Context;
@@ -330,7 +330,7 @@ RingAcquireLock(
 
 static VOID
 RingReleaseLock(
-    IN  PVOID       Context
+    _In_ PVOID      Context
     )
 {
     PXENVKBD_RING   Ring = Context;
@@ -338,17 +338,17 @@ RingReleaseLock(
     KeReleaseSpinLockFromDpcLevel(&Ring->Lock);
 }
 
-__drv_functionClass(KDEFERRED_ROUTINE)
-__drv_maxIRQL(DISPATCH_LEVEL)
-__drv_minIRQL(DISPATCH_LEVEL)
-__drv_requiresIRQL(DISPATCH_LEVEL)
-__drv_sameIRQL
+_Function_class_(KDEFERRED_ROUTINE)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+_IRQL_requires_(DISPATCH_LEVEL)
+_IRQL_requires_same_
 static VOID
 RingDpc(
-    IN  PKDPC       Dpc,
-    IN  PVOID       Context,
-    IN  PVOID       Argument1,
-    IN  PVOID       Argument2
+    _In_ PKDPC      Dpc,
+    _In_ PVOID      Context,
+    _In_ PVOID      Argument1,
+    _In_ PVOID      Argument2
     )
 {
     PXENVKBD_RING   Ring = Context;
@@ -436,8 +436,8 @@ KSERVICE_ROUTINE    RingEvtchnCallback;
 
 BOOLEAN
 RingEvtchnCallback(
-    IN  PKINTERRUPT     InterruptObject,
-    IN  PVOID           Argument
+    _In_ PKINTERRUPT    InterruptObject,
+    _In_ PVOID          Argument
     )
 {
     PXENVKBD_RING       Ring = Argument;
@@ -455,8 +455,8 @@ RingEvtchnCallback(
 
 static VOID
 RingDebugCallback(
-    IN  PVOID           Argument,
-    IN  BOOLEAN         Crashing
+    _In_ PVOID          Argument,
+    _In_ BOOLEAN        Crashing
     )
 {
     PXENVKBD_RING       Ring = Argument;
@@ -495,8 +495,8 @@ RingDebugCallback(
 
 NTSTATUS
 RingInitialize(
-    IN  PXENVKBD_FRONTEND   Frontend,
-    OUT PXENVKBD_RING       *Ring
+    _In_ PXENVKBD_FRONTEND  Frontend,
+    _Outptr_ PXENVKBD_RING  *Ring
     )
 {
     NTSTATUS                status;
@@ -535,7 +535,7 @@ fail1:
 
 static FORCEINLINE VOID
 RingReadFeatures(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     PCHAR               Buffer;
@@ -576,7 +576,7 @@ RingReadFeatures(
 
 NTSTATUS
 RingConnect(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     PFN_NUMBER          Pfn;
@@ -744,8 +744,8 @@ fail1:
 
 NTSTATUS
 RingStoreWrite(
-    IN  PXENVKBD_RING               Ring,
-    IN  PXENBUS_STORE_TRANSACTION   Transaction
+    _In_ PXENVKBD_RING              Ring,
+    _In_ PXENBUS_STORE_TRANSACTION  Transaction
     )
 {
     ULONG                           Port;
@@ -827,7 +827,7 @@ fail1:
 
 NTSTATUS
 RingEnable(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     Trace("=====>\n");
@@ -843,7 +843,7 @@ RingEnable(
 
 VOID
 RingDisable(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     Trace("=====>\n");
@@ -856,7 +856,7 @@ RingDisable(
 
 VOID
 RingDisconnect(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     Trace("=====>\n");
@@ -908,7 +908,7 @@ RingDisconnect(
 
 VOID
 RingTeardown(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     )
 {
     Trace("=====>\n");
@@ -950,7 +950,7 @@ RingTeardown(
 
 VOID
 RingNotify(
-    IN  PXENVKBD_RING   Ring
+    _In_ 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,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Length,
+    _Out_ PULONG        Returned
     )
 {
     switch (ReportId) {
@@ -986,7 +986,7 @@ RingGetInputReport(
 
 VOID
 RingReadReport(
-    IN  PXENVKBD_RING   Ring
+    _In_ 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 cf0b139..0ed1693 100644
--- a/src/xenvkbd/ring.h
+++ b/src/xenvkbd/ring.h
@@ -43,58 +43,58 @@ typedef struct _XENVKBD_RING XENVKBD_RING, *PXENVKBD_RING;
 
 extern NTSTATUS
 RingInitialize(
-    IN  PXENVKBD_FRONTEND   Frontend,
-    OUT PXENVKBD_RING       *Ring
+    _In_ PXENVKBD_FRONTEND  Frontend,
+    _Outptr_ PXENVKBD_RING  *Ring
     );
 
 extern NTSTATUS
 RingConnect(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 extern NTSTATUS
 RingStoreWrite(
-    IN  PXENVKBD_RING               Ring,
-    IN  PXENBUS_STORE_TRANSACTION   Transaction
+    _In_ PXENVKBD_RING              Ring,
+    _In_ PXENBUS_STORE_TRANSACTION  Transaction
     );
 
 extern NTSTATUS
 RingEnable(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 extern VOID
 RingDisable(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 extern VOID
 RingDisconnect(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 extern VOID
 RingTeardown(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 extern VOID
 RingNotify(
-    IN  PXENVKBD_RING   Ring
+    _In_ 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,
+    _In_ PVOID          Buffer,
+    _In_ ULONG          Length,
+    _Out_ PULONG        Returned
     );
 
 extern VOID
 RingReadReport(
-    IN  PXENVKBD_RING   Ring
+    _In_ PXENVKBD_RING  Ring
     );
 
 #endif  // _XENVKBD_RING_H
diff --git a/src/xenvkbd/thread.c b/src/xenvkbd/thread.c
index 5cb6b09..5ff6392 100644
--- a/src/xenvkbd/thread.c
+++ b/src/xenvkbd/thread.c
@@ -50,7 +50,7 @@ struct _XENVKBD_THREAD {
 
 static FORCEINLINE PVOID
 __ThreadAllocate(
-    IN  ULONG   Length
+    _In_ ULONG  Length
     )
 {
     return __AllocatePoolWithTag(NonPagedPool, Length, THREAD_POOL);
@@ -58,7 +58,7 @@ __ThreadAllocate(
 
 static FORCEINLINE VOID
 __ThreadFree(
-    IN  PVOID   Buffer
+    _In_ PVOID  Buffer
     )
 {
     __FreePoolWithTag(Buffer, THREAD_POOL);
@@ -66,7 +66,7 @@ __ThreadFree(
 
 static FORCEINLINE VOID
 __ThreadWake(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     KeSetEvent(&Thread->Event, IO_NO_INCREMENT, FALSE);
@@ -74,7 +74,7 @@ __ThreadWake(
 
 VOID
 ThreadWake(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     __ThreadWake(Thread);
@@ -82,7 +82,7 @@ ThreadWake(
 
 static FORCEINLINE VOID
 __ThreadAlert(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     Thread->Alerted = TRUE;
@@ -91,7 +91,7 @@ __ThreadAlert(
 
 VOID
 ThreadAlert(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     __ThreadAlert(Thread);
@@ -101,7 +101,7 @@ KSTART_ROUTINE  ThreadFunction;
 
 VOID
 ThreadFunction(
-    IN  PVOID       Argument
+    _In_ PVOID      Argument
     )
 {
     PXENVKBD_THREAD Self = Argument;
@@ -116,16 +116,16 @@ ThreadFunction(
     // NOT REACHED
 }
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 NTSTATUS
 ThreadCreate(
-    IN  XENVKBD_THREAD_FUNCTION Function,
-    IN  PVOID                   Context,
-    OUT PXENVKBD_THREAD         *Thread
+    _In_ XENVKBD_THREAD_FUNCTION    Function,
+    _In_ PVOID                      Context,
+    _Outptr_ PXENVKBD_THREAD        *Thread
     )
 {
-    HANDLE                      Handle;
-    NTSTATUS                    status;
+    HANDLE                          Handle;
+    NTSTATUS                        status;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
@@ -189,7 +189,7 @@ fail1:
 
 PKEVENT
 ThreadGetEvent(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     return &Thread->Event;
@@ -197,7 +197,7 @@ ThreadGetEvent(
 
 BOOLEAN
 ThreadIsAlerted(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
     return Thread->Alerted;
@@ -205,10 +205,10 @@ ThreadIsAlerted(
 
 VOID
 ThreadJoin(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     )
 {
-    LONG                References;
+    LONG                    References;
 
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
     ASSERT3P(KeGetCurrentThread(), !=, Thread->Thread);
diff --git a/src/xenvkbd/thread.h b/src/xenvkbd/thread.h
index 37796a2..7f0514b 100644
--- a/src/xenvkbd/thread.h
+++ b/src/xenvkbd/thread.h
@@ -39,37 +39,37 @@ typedef struct _XENVKBD_THREAD XENVKBD_THREAD, 
*PXENVKBD_THREAD;
 
 typedef NTSTATUS (*XENVKBD_THREAD_FUNCTION)(PXENVKBD_THREAD, PVOID);
 
-__drv_requiresIRQL(PASSIVE_LEVEL)
+_IRQL_requires_(PASSIVE_LEVEL)
 extern NTSTATUS
 ThreadCreate(
-    IN  XENVKBD_THREAD_FUNCTION Function,
-    IN  PVOID                   Context,
-    OUT PXENVKBD_THREAD         *Thread
+    _In_ XENVKBD_THREAD_FUNCTION    Function,
+    _In_ PVOID                      Context,
+    _Outptr_ PXENVKBD_THREAD        *Thread
     );
 
 extern PKEVENT
 ThreadGetEvent(
-    IN  PXENVKBD_THREAD Self
+    _In_ PXENVKBD_THREAD    Self
     );
 
 extern BOOLEAN
 ThreadIsAlerted(
-    IN  PXENVKBD_THREAD Self
+    _In_ PXENVKBD_THREAD    Self
     );
 
 extern VOID
 ThreadWake(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     );
 
 extern VOID
 ThreadAlert(
-    IN  PXENVKBD_THREAD Thread
+    _In_ PXENVKBD_THREAD    Thread
     );
 
 extern VOID
 ThreadJoin(
-    IN  PXENVKBD_THREAD Thread
+    _In_ 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®.