ntdll: Add a stub implementation of FSCTL_GET_RETRIEVAL_POINTERS.

Hans Leidekker hans at codeweavers.com
Sat Nov 20 08:48:02 CST 2010


Avoids a crash in the Adobe Reader 9 installer.
See http://bugs.winehq.org/show_bug.cgi?id=18958
---
 dlls/ntdll/file.c  |   22 ++++++++++++++++++++++
 include/winioctl.h |    9 +++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 3dc5358..68bed0e 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1495,6 +1495,28 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
         status = STATUS_SUCCESS;
         break;
 
+    case FSCTL_GET_RETRIEVAL_POINTERS:
+    {
+        RETRIEVAL_POINTERS_BUFFER *buffer = (RETRIEVAL_POINTERS_BUFFER *)out_buffer;
+
+        FIXME("stub: FSCTL_GET_RETRIEVAL_POINTERS\n");
+
+        if (out_size >= sizeof(RETRIEVAL_POINTERS_BUFFER))
+        {
+            buffer->ExtentCount                 = 1;
+            buffer->StartingVcn.QuadPart        = 1;
+            buffer->Extents[0].NextVcn.QuadPart = 0;
+            buffer->Extents[0].Lcn.QuadPart     = 0;
+            io->Information = sizeof(RETRIEVAL_POINTERS_BUFFER);
+            status = STATUS_SUCCESS;
+        }
+        else
+        {
+            io->Information = 0;
+            status = STATUS_BUFFER_TOO_SMALL;
+        }
+        break;
+    }
     case FSCTL_PIPE_LISTEN:
     case FSCTL_PIPE_WAIT:
     default:
diff --git a/include/winioctl.h b/include/winioctl.h
index 8765cdf..d1c3376 100644
--- a/include/winioctl.h
+++ b/include/winioctl.h
@@ -376,6 +376,15 @@ typedef struct _VOLUME_DISK_EXTENTS {
     DISK_EXTENT         Extents[1];
 } VOLUME_DISK_EXTENTS;
 
+typedef struct RETRIEVAL_POINTERS_BUFFER {
+    DWORD         ExtentCount;
+    LARGE_INTEGER StartingVcn;
+    struct {
+        LARGE_INTEGER NextVcn;
+        LARGE_INTEGER Lcn;
+    } Extents[1];
+} RETRIEVAL_POINTERS_BUFFER, *PRETRIEVAL_POINTERS_BUFFER;
+
 /* End: _WIN32_WINNT >= 0x0400 */
 
 /*
-- 
1.7.1






More information about the wine-patches mailing list