From 88648de58678ae30d0249377c5e95fee1f3d8662 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sat, 19 Sep 2015 14:50:04 +0000 Subject: [PATCH] [MOUNTMGR] Our ReconcileThisDatabaseWithMasterWorker() routine will expect two parameters: the device extension + the device to which reconcile remote database. So, fix our code accordingly svn path=/trunk/; revision=69291 --- reactos/drivers/filters/mountmgr/device.c | 5 ++++- reactos/drivers/filters/mountmgr/mntmgr.h | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/filters/mountmgr/device.c b/reactos/drivers/filters/mountmgr/device.c index a84a16abe57..67a108ff69c 100644 --- a/reactos/drivers/filters/mountmgr/device.c +++ b/reactos/drivers/filters/mountmgr/device.c @@ -1467,6 +1467,7 @@ MountMgrQueryDosVolumePaths(IN PDEVICE_EXTENSION DeviceExtension, ULONG Attempts, OutputLength; PMOUNTMGR_TARGET_NAME Target; PMOUNTMGR_VOLUME_PATHS Paths, Output; + RECONCILE_WORK_ITEM_CONTEXT ReconcileContext; PDEVICE_INFORMATION DeviceInformation, ListDeviceInfo, FailedDevice; Stack = IoGetCurrentIrpStackLocation(Irp); @@ -1535,8 +1536,10 @@ MountMgrQueryDosVolumePaths(IN PDEVICE_EXTENSION DeviceExtension, } /* Reconcile database */ + ReconcileContext.DeviceExtension = DeviceExtension; + ReconcileContext.DeviceInformation = FailedDevice; KeReleaseSemaphore(&DeviceExtension->DeviceLock, IO_NO_INCREMENT, 1, FALSE); - ReconcileThisDatabaseWithMasterWorker(&DeviceExtension); + ReconcileThisDatabaseWithMasterWorker(&ReconcileContext); KeWaitForSingleObject(&DeviceExtension->DeviceLock, Executive, KernelMode, FALSE, NULL); /* Look for our device, to check it's online */ diff --git a/reactos/drivers/filters/mountmgr/mntmgr.h b/reactos/drivers/filters/mountmgr/mntmgr.h index a7f496cc84a..01d12e39fdf 100644 --- a/reactos/drivers/filters/mountmgr/mntmgr.h +++ b/reactos/drivers/filters/mountmgr/mntmgr.h @@ -128,14 +128,19 @@ typedef struct _ONLINE_NOTIFICATION_WORK_ITEM UNICODE_STRING SymbolicName; // 0x14 } ONLINE_NOTIFICATION_WORK_ITEM, *PONLINE_NOTIFICATION_WORK_ITEM; // 0x1C +typedef struct _RECONCILE_WORK_ITEM_CONTEXT +{ + PDEVICE_EXTENSION DeviceExtension; + PDEVICE_INFORMATION DeviceInformation; +} RECONCILE_WORK_ITEM_CONTEXT, *PRECONCILE_WORK_ITEM_CONTEXT; + typedef struct _RECONCILE_WORK_ITEM { LIST_ENTRY WorkerQueueListEntry; // 0x00 PIO_WORKITEM WorkItem; // 0x08 PWORKER_THREAD_ROUTINE WorkerRoutine; // 0x0C PVOID Context; // 0x10 - PDEVICE_EXTENSION DeviceExtension; // 0x14 - PDEVICE_INFORMATION DeviceInformation; // 0x18 + RECONCILE_WORK_ITEM_CONTEXT; // 0x14 } RECONCILE_WORK_ITEM, *PRECONCILE_WORK_ITEM; // 0x1C typedef struct _MIGRATE_WORK_ITEM