[NTOSKRNL_VISTA] Implement IoGetIrpExtraCreateParameter
authorPierre Schweitzer <pierre@reactos.org>
Tue, 25 Dec 2018 12:44:44 +0000 (13:44 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Tue, 25 Dec 2018 12:50:40 +0000 (13:50 +0100)
CORE-15452

sdk/lib/drivers/ntoskrnl_vista/CMakeLists.txt
sdk/lib/drivers/ntoskrnl_vista/io.c [new file with mode: 0644]

index 0fdafab..0fd8fd8 100644 (file)
@@ -5,6 +5,7 @@ add_definitions(-DUNICODE -D_UNICODE -D__NTOSKRNL__ -D_NTOSKRNL_ -D_NTSYSTEM_)
 
 list(APPEND SOURCE
     fsrtl.c
 
 list(APPEND SOURCE
     fsrtl.c
+    io.c
     ke.c
     rtl.c)
 
     ke.c
     rtl.c)
 
diff --git a/sdk/lib/drivers/ntoskrnl_vista/io.c b/sdk/lib/drivers/ntoskrnl_vista/io.c
new file mode 100644 (file)
index 0000000..1d88cbb
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * PROJECT:         ReactOS Kernel - Vista+ APIs
+ * LICENSE:         GPL v2 - See COPYING in the top level directory
+ * FILE:            lib/drivers/ntoskrnl_vista/io.c
+ * PURPOSE:         Io functions of Vista+
+ * PROGRAMMERS:     Pierre Schweitzer <pierre@reactos.org>
+ */
+
+#include <ntdef.h>
+#include <ntifs.h>
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+IoGetIrpExtraCreateParameter(IN PIRP Irp,
+                             OUT PECP_LIST *ExtraCreateParameter)
+{
+    /* Check we have a create operation */
+    if (!BooleanFlagOn(Irp->Flags, IRP_CREATE_OPERATION))
+    {
+        return STATUS_INVALID_PARAMETER;
+    }
+
+    /* If so, return user buffer */
+    *ExtraCreateParameter = Irp->UserBuffer;
+    return STATUS_SUCCESS;
+}