Sync trunk head (r41026)
[reactos.git] / reactos / drivers / video / videoprt / resource.c
index b3a2f28..55a4239 100644 (file)
@@ -735,7 +735,7 @@ VideoPortReleaseBuffer(
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 
 PVOID NTAPI
@@ -745,8 +745,16 @@ VideoPortLockBuffer(
    IN ULONG Length,
    IN VP_LOCK_OPERATION Operation)
 {
-    UNIMPLEMENTED;
-    return NULL;
+    PMDL Mdl;
+
+    Mdl = IoAllocateMdl(BaseAddress, Length, FALSE, FALSE, NULL);
+    if (!Mdl)
+    {
+        return NULL;
+    }
+    /* FIXME use seh */
+    MmProbeAndLockPages(Mdl, KernelMode,Operation);
+    return Mdl;
 }
 
 /*
@@ -758,7 +766,11 @@ VideoPortUnlockBuffer(
    IN PVOID HwDeviceExtension,
    IN PVOID Mdl)
 {
-    UNIMPLEMENTED;
+    if (Mdl)
+    {
+        MmUnlockPages((PMDL)Mdl);
+        IoFreeMdl(Mdl);
+    }
 }
 
 /*