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