sys: rename retain/release to reference/dereference

This commit is contained in:
Bill Zissimopoulos 2016-01-18 12:38:37 -08:00
parent b17d70e462
commit c488949022
7 changed files with 48 additions and 48 deletions

View File

@ -59,7 +59,7 @@ static NTSTATUS FspFsvolClose(
FSP_FSCTL_TRANSACT_REQ *Request; FSP_FSCTL_TRANSACT_REQ *Request;
/* dereference the FileNode (and delete if no more references) */ /* dereference the FileNode (and delete if no more references) */
FspFileNodeRelease(FileNode); FspFileNodeDereference(FileNode);
/* create the user-mode file system request; MustSucceed because IRP_MJ_CLOSE cannot fail */ /* create the user-mode file system request; MustSucceed because IRP_MJ_CLOSE cannot fail */
FspIopCreateRequestMustSucceed(0, FileNameRequired ? &FileNode->FileName : 0, 0, &Request); FspIopCreateRequestMustSucceed(0, FileNameRequired ? &FileNode->FileName : 0, 0, &Request);

View File

@ -267,7 +267,7 @@ static NTSTATUS FspFsvolCreate(
FspFsvolCreateRequestFini, &Request); FspFsvolCreateRequestFini, &Request);
if (!NT_SUCCESS(Result)) if (!NT_SUCCESS(Result))
{ {
FspFileNodeRelease(FileNode); FspFileNodeDereference(FileNode);
return Result; return Result;
} }
@ -680,7 +680,7 @@ static VOID FspFsvolCreateRequestFini(PVOID Context[3])
if (0 != Context[RequestFileNode]) if (0 != Context[RequestFileNode])
{ {
FspFileNodeRelease(Context[RequestFileNode]); FspFileNodeDereference(Context[RequestFileNode]);
Context[RequestFileNode] = 0; Context[RequestFileNode] = 0;
} }
@ -728,7 +728,7 @@ static VOID FspFsvolCreateOverwriteRequestFini(PVOID Context[3])
FspFileNodeClose(FileNode, FileObject, 0); FspFileNodeClose(FileNode, FileObject, 0);
} }
FspFileNodeRelease(FileNode); FspFileNodeDereference(FileNode);
Context[RequestFileObject] = 0; Context[RequestFileObject] = 0;
Context[RequestFileNode] = 0; Context[RequestFileNode] = 0;

View File

@ -15,12 +15,12 @@ NTSTATUS FspDeviceCreate(UINT32 Kind, ULONG ExtraSize,
PDEVICE_OBJECT *PDeviceObject); PDEVICE_OBJECT *PDeviceObject);
NTSTATUS FspDeviceInitialize(PDEVICE_OBJECT DeviceObject); NTSTATUS FspDeviceInitialize(PDEVICE_OBJECT DeviceObject);
VOID FspDeviceDelete(PDEVICE_OBJECT DeviceObject); VOID FspDeviceDelete(PDEVICE_OBJECT DeviceObject);
BOOLEAN FspDeviceRetain(PDEVICE_OBJECT DeviceObject); BOOLEAN FspDeviceReference(PDEVICE_OBJECT DeviceObject);
VOID FspDeviceRelease(PDEVICE_OBJECT DeviceObject); VOID FspDeviceDereference(PDEVICE_OBJECT DeviceObject);
_IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_(DISPATCH_LEVEL)
static BOOLEAN FspDeviceRetainAtDpcLevel(PDEVICE_OBJECT DeviceObject); static BOOLEAN FspDeviceReferenceAtDpcLevel(PDEVICE_OBJECT DeviceObject);
_IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_(DISPATCH_LEVEL)
static VOID FspDeviceReleaseFromDpcLevel(PDEVICE_OBJECT DeviceObject); static VOID FspDeviceDereferenceFromDpcLevel(PDEVICE_OBJECT DeviceObject);
static NTSTATUS FspFsvolDeviceInit(PDEVICE_OBJECT DeviceObject); static NTSTATUS FspFsvolDeviceInit(PDEVICE_OBJECT DeviceObject);
static VOID FspFsvolDeviceFini(PDEVICE_OBJECT DeviceObject); static VOID FspFsvolDeviceFini(PDEVICE_OBJECT DeviceObject);
static IO_TIMER_ROUTINE FspFsvolDeviceTimerRoutine; static IO_TIMER_ROUTINE FspFsvolDeviceTimerRoutine;
@ -171,7 +171,7 @@ VOID FspDeviceDelete(PDEVICE_OBJECT DeviceObject)
IoDeleteDevice(DeviceObject); IoDeleteDevice(DeviceObject);
} }
BOOLEAN FspDeviceRetain(PDEVICE_OBJECT DeviceObject) BOOLEAN FspDeviceReference(PDEVICE_OBJECT DeviceObject)
{ {
// !PAGED_CODE(); // !PAGED_CODE();
@ -189,7 +189,7 @@ BOOLEAN FspDeviceRetain(PDEVICE_OBJECT DeviceObject)
return Result; return Result;
} }
VOID FspDeviceRelease(PDEVICE_OBJECT DeviceObject) VOID FspDeviceDereference(PDEVICE_OBJECT DeviceObject)
{ {
// !PAGED_CODE(); // !PAGED_CODE();
@ -211,7 +211,7 @@ VOID FspDeviceRelease(PDEVICE_OBJECT DeviceObject)
} }
_IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_(DISPATCH_LEVEL)
static BOOLEAN FspDeviceRetainAtDpcLevel(PDEVICE_OBJECT DeviceObject) static BOOLEAN FspDeviceReferenceAtDpcLevel(PDEVICE_OBJECT DeviceObject)
{ {
// !PAGED_CODE(); // !PAGED_CODE();
@ -229,7 +229,7 @@ static BOOLEAN FspDeviceRetainAtDpcLevel(PDEVICE_OBJECT DeviceObject)
} }
_IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_(DISPATCH_LEVEL)
static VOID FspDeviceReleaseFromDpcLevel(PDEVICE_OBJECT DeviceObject) static VOID FspDeviceDereferenceFromDpcLevel(PDEVICE_OBJECT DeviceObject)
{ {
// !PAGED_CODE(); // !PAGED_CODE();
@ -321,7 +321,7 @@ static VOID FspFsvolDeviceFini(PDEVICE_OBJECT DeviceObject)
* *
* Our IoTimer routine will NOT be called again after IoStopTimer() returns. * Our IoTimer routine will NOT be called again after IoStopTimer() returns.
* However a work item may be in flight. For this reason our IoTimer routine * However a work item may be in flight. For this reason our IoTimer routine
* retains our DeviceObject before queueing work items. * references our DeviceObject before queueing work items.
*/ */
if (FsvolDeviceExtension->InitDoneTimer) if (FsvolDeviceExtension->InitDoneTimer)
IoStopTimer(DeviceObject); IoStopTimer(DeviceObject);
@ -366,14 +366,14 @@ static VOID FspFsvolDeviceTimerRoutine(PDEVICE_OBJECT DeviceObject, PVOID Contex
// !PAGED_CODE(); // !PAGED_CODE();
/* /*
* This routine runs at DPC level. Retain our DeviceObject and queue a work item * This routine runs at DPC level. Reference our DeviceObject and queue a work item
* so that we can do our processing at Passive level. Only do so if the work item * so that we can do our processing at Passive level. Only do so if the work item
* is not already in flight (otherwise we could requeue the same work item). * is not already in flight (otherwise we could requeue the same work item).
*/ */
ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL);
if (!FspDeviceRetainAtDpcLevel(DeviceObject)) if (!FspDeviceReferenceAtDpcLevel(DeviceObject))
return; return;
BOOLEAN ExpirationInProgress; BOOLEAN ExpirationInProgress;
@ -389,7 +389,7 @@ static VOID FspFsvolDeviceTimerRoutine(PDEVICE_OBJECT DeviceObject, PVOID Contex
KeReleaseSpinLockFromDpcLevel(&FsvolDeviceExtension->ExpirationLock); KeReleaseSpinLockFromDpcLevel(&FsvolDeviceExtension->ExpirationLock);
if (ExpirationInProgress) if (ExpirationInProgress)
FspDeviceReleaseFromDpcLevel(DeviceObject); FspDeviceDereferenceFromDpcLevel(DeviceObject);
} }
static VOID FspFsvolDeviceExpirationRoutine(PVOID Context) static VOID FspFsvolDeviceExpirationRoutine(PVOID Context)
@ -406,7 +406,7 @@ static VOID FspFsvolDeviceExpirationRoutine(PVOID Context)
FsvolDeviceExtension->ExpirationInProgress = FALSE; FsvolDeviceExtension->ExpirationInProgress = FALSE;
KeReleaseSpinLock(&FsvolDeviceExtension->ExpirationLock, Irql); KeReleaseSpinLock(&FsvolDeviceExtension->ExpirationLock, Irql);
FspDeviceRelease(DeviceObject); FspDeviceDereference(DeviceObject);
} }
VOID FspFsvolDeviceLockContextTable(PDEVICE_OBJECT DeviceObject) VOID FspFsvolDeviceLockContextTable(PDEVICE_OBJECT DeviceObject)

View File

@ -103,16 +103,16 @@ extern __declspec(selectany) int fsp_bp = 1;
#define FSP_ENTER_MJ(...) \ #define FSP_ENTER_MJ(...) \
NTSTATUS Result = STATUS_SUCCESS; \ NTSTATUS Result = STATUS_SUCCESS; \
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);\ PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);\
BOOLEAN fsp_device_release = FALSE; \ BOOLEAN fsp_device_deref = FALSE; \
FSP_ENTER_(__VA_ARGS__); \ FSP_ENTER_(__VA_ARGS__); \
do \ do \
{ \ { \
if (!FspDeviceRetain(IrpSp->DeviceObject))\ if (!FspDeviceReference(IrpSp->DeviceObject))\
{ \ { \
Result = STATUS_CANCELLED; \ Result = STATUS_CANCELLED; \
goto fsp_leave_label; \ goto fsp_leave_label; \
} \ } \
fsp_device_release = TRUE; \ fsp_device_deref = TRUE; \
} while (0,0) } while (0,0)
#define FSP_LEAVE_MJ(fmt, ...) \ #define FSP_LEAVE_MJ(fmt, ...) \
FSP_LEAVE_( \ FSP_LEAVE_( \
@ -141,7 +141,7 @@ extern __declspec(selectany) int fsp_bp = 1;
}\ }\
} \ } \
else \ else \
FspIopCompleteIrpEx(Irp, Result, fsp_device_release);\ FspIopCompleteIrpEx(Irp, Result, fsp_device_deref);\
} \ } \
); \ ); \
return Result return Result
@ -403,7 +403,7 @@ VOID FspIopDeleteRequest(FSP_FSCTL_TRANSACT_REQ *Request);
PVOID *FspIopRequestContextAddress(FSP_FSCTL_TRANSACT_REQ *Request, ULONG I); PVOID *FspIopRequestContextAddress(FSP_FSCTL_TRANSACT_REQ *Request, ULONG I);
NTSTATUS FspIopPostWorkRequestFunnel(PDEVICE_OBJECT DeviceObject, NTSTATUS FspIopPostWorkRequestFunnel(PDEVICE_OBJECT DeviceObject,
FSP_FSCTL_TRANSACT_REQ *Request, BOOLEAN BestEffort); FSP_FSCTL_TRANSACT_REQ *Request, BOOLEAN BestEffort);
VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceRelease); VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference);
VOID FspIopCompleteCanceledIrp(PIRP Irp); VOID FspIopCompleteCanceledIrp(PIRP Irp);
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request); NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
@ -473,8 +473,8 @@ NTSTATUS FspDeviceCreate(UINT32 Kind, ULONG ExtraSize,
PDEVICE_OBJECT *PDeviceObject); PDEVICE_OBJECT *PDeviceObject);
NTSTATUS FspDeviceInitialize(PDEVICE_OBJECT DeviceObject); NTSTATUS FspDeviceInitialize(PDEVICE_OBJECT DeviceObject);
VOID FspDeviceDelete(PDEVICE_OBJECT DeviceObject); VOID FspDeviceDelete(PDEVICE_OBJECT DeviceObject);
BOOLEAN FspDeviceRetain(PDEVICE_OBJECT DeviceObject); BOOLEAN FspDeviceReference(PDEVICE_OBJECT DeviceObject);
VOID FspDeviceRelease(PDEVICE_OBJECT DeviceObject); VOID FspDeviceDereference(PDEVICE_OBJECT DeviceObject);
VOID FspFsvolDeviceLockContextTable(PDEVICE_OBJECT DeviceObject); VOID FspFsvolDeviceLockContextTable(PDEVICE_OBJECT DeviceObject);
VOID FspFsvolDeviceUnlockContextTable(PDEVICE_OBJECT DeviceObject); VOID FspFsvolDeviceUnlockContextTable(PDEVICE_OBJECT DeviceObject);
PVOID FspFsvolDeviceLookupContext(PDEVICE_OBJECT DeviceObject, UINT64 Identifier); PVOID FspFsvolDeviceLookupContext(PDEVICE_OBJECT DeviceObject, UINT64 Identifier);
@ -549,12 +549,12 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
VOID FspFileNodeClose(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, VOID FspFileNodeClose(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
PBOOLEAN PDeletePending); PBOOLEAN PDeletePending);
static inline static inline
VOID FspFileNodeRetain(FSP_FILE_NODE *FileNode) VOID FspFileNodeReference(FSP_FILE_NODE *FileNode)
{ {
InterlockedIncrement(&FileNode->RefCount); InterlockedIncrement(&FileNode->RefCount);
} }
static inline static inline
VOID FspFileNodeRelease(FSP_FILE_NODE *FileNode) VOID FspFileNodeDereference(FSP_FILE_NODE *FileNode)
{ {
LONG RefCount = InterlockedDecrement(&FileNode->RefCount); LONG RefCount = InterlockedDecrement(&FileNode->RefCount);
if (0 == RefCount) if (0 == RefCount)

View File

@ -15,7 +15,7 @@ PVOID *FspIopRequestContextAddress(FSP_FSCTL_TRANSACT_REQ *Request, ULONG I);
NTSTATUS FspIopPostWorkRequestFunnel(PDEVICE_OBJECT DeviceObject, NTSTATUS FspIopPostWorkRequestFunnel(PDEVICE_OBJECT DeviceObject,
FSP_FSCTL_TRANSACT_REQ *Request, BOOLEAN AllocateIrpMustSucceed); FSP_FSCTL_TRANSACT_REQ *Request, BOOLEAN AllocateIrpMustSucceed);
static IO_COMPLETION_ROUTINE FspIopPostWorkRequestCompletion; static IO_COMPLETION_ROUTINE FspIopPostWorkRequestCompletion;
VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceRelease); VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference);
VOID FspIopCompleteCanceledIrp(PIRP Irp); VOID FspIopCompleteCanceledIrp(PIRP Irp);
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request); NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
@ -209,7 +209,7 @@ static NTSTATUS FspIopPostWorkRequestCompletion(
return STATUS_MORE_PROCESSING_REQUIRED; return STATUS_MORE_PROCESSING_REQUIRED;
} }
VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceRelease) VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference)
{ {
PAGED_CODE(); PAGED_CODE();
@ -230,8 +230,8 @@ VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceRelease)
Irp->IoStatus.Status = Result; Irp->IoStatus.Status = Result;
IoCompleteRequest(Irp, FSP_IO_INCREMENT); IoCompleteRequest(Irp, FSP_IO_INCREMENT);
if (DeviceRelease) if (DeviceDereference)
FspDeviceRelease(DeviceObject); FspDeviceDereference(DeviceObject);
} }
VOID FspIopCompleteCanceledIrp(PIRP Irp) VOID FspIopCompleteCanceledIrp(PIRP Irp)

View File

@ -56,7 +56,7 @@ NTSTATUS FspFileNodeCreate(PDEVICE_OBJECT DeviceObject,
FileNode->NonPaged = NonPaged; FileNode->NonPaged = NonPaged;
FileNode->RefCount = 1; FileNode->RefCount = 1;
FileNode->FsvolDeviceObject = DeviceObject; FileNode->FsvolDeviceObject = DeviceObject;
FspDeviceRetain(FileNode->FsvolDeviceObject); FspDeviceReference(FileNode->FsvolDeviceObject);
RtlInitEmptyUnicodeString(&FileNode->FileName, FileNode->FileNameBuf, (USHORT)ExtraSize); RtlInitEmptyUnicodeString(&FileNode->FileName, FileNode->FileNameBuf, (USHORT)ExtraSize);
*PFileNode = FileNode; *PFileNode = FileNode;
@ -70,7 +70,7 @@ VOID FspFileNodeDelete(FSP_FILE_NODE *FileNode)
FsRtlTeardownPerStreamContexts(&FileNode->Header); FsRtlTeardownPerStreamContexts(&FileNode->Header);
FspDeviceRelease(FileNode->FsvolDeviceObject); FspDeviceDereference(FileNode->FsvolDeviceObject);
ExDeleteResourceLite(&FileNode->NonPaged->PagingIoResource); ExDeleteResourceLite(&FileNode->NonPaged->PagingIoResource);
ExDeleteResourceLite(&FileNode->NonPaged->Resource); ExDeleteResourceLite(&FileNode->NonPaged->Resource);
@ -105,7 +105,7 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
{ {
/* /*
* The new FileNode was inserted into the Context table. Set its share access * The new FileNode was inserted into the Context table. Set its share access
* and retain and open it. There should be (at least) two references to this * and reference and open it. There should be (at least) two references to this
* FileNode, one from our caller and one from the Context table. * FileNode, one from our caller and one from the Context table.
*/ */
ASSERT(OpenedFileNode == FileNode); ASSERT(OpenedFileNode == FileNode);
@ -160,7 +160,7 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
if (0 != OpenedFileNode) if (0 != OpenedFileNode)
{ {
FspFileNodeRetain(OpenedFileNode); FspFileNodeReference(OpenedFileNode);
OpenedFileNode->OpenCount++; OpenedFileNode->OpenCount++;
if (DeleteOnClose) if (DeleteOnClose)
@ -198,7 +198,7 @@ VOID FspFileNodeClose(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
FspFsvolDeviceUnlockContextTable(FsvolDeviceObject); FspFsvolDeviceUnlockContextTable(FsvolDeviceObject);
if (Deleted) if (Deleted)
FspFileNodeRelease(FileNode); FspFileNodeDereference(FileNode);
if (0 != PDeletePending) if (0 != PDeletePending)
*PDeletePending = Deleted && DeletePending; *PDeletePending = Deleted && DeletePending;

View File

@ -141,7 +141,7 @@ NTSTATUS FspVolumeCreate(
&FsvrtDeviceObject); &FsvrtDeviceObject);
if (!NT_SUCCESS(Result)) if (!NT_SUCCESS(Result))
{ {
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
return Result; return Result;
} }
#pragma prefast(suppress:28175, "We are a filesystem: ok to access SectorSize") #pragma prefast(suppress:28175, "We are a filesystem: ok to access SectorSize")
@ -167,8 +167,8 @@ NTSTATUS FspVolumeCreate(
if (!NT_SUCCESS(Result)) if (!NT_SUCCESS(Result))
{ {
if (0 != FsvrtDeviceObject) if (0 != FsvrtDeviceObject)
FspDeviceRelease(FsvrtDeviceObject); FspDeviceDereference(FsvrtDeviceObject);
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
} }
/* do we need to register with MUP? */ /* do we need to register with MUP? */
@ -189,7 +189,7 @@ NTSTATUS FspVolumeCreate(
Result = RegisterMupWorkItem.Result; Result = RegisterMupWorkItem.Result;
if (!NT_SUCCESS(Result)) if (!NT_SUCCESS(Result))
{ {
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
return Result; return Result;
} }
} }
@ -264,7 +264,7 @@ VOID FspVolumeDelete(
* Release the virtual disk object. This is safe to do here because the volume device * Release the virtual disk object. This is safe to do here because the volume device
* keeps an extra reference to the virtual disk object using ObReferenceObject. * keeps an extra reference to the virtual disk object using ObReferenceObject.
*/ */
FspDeviceRelease(FsvrtDeviceObject); FspDeviceDereference(FsvrtDeviceObject);
if (DeleteVpb) if (DeleteVpb)
{ {
@ -277,7 +277,7 @@ VOID FspVolumeDelete(
/* there is only the reference from FspVolumeMount; release it! */ /* there is only the reference from FspVolumeMount; release it! */
FspFreeExternal(OldVpb); FspFreeExternal(OldVpb);
FsvolDeviceExtension->SwapVpb = 0; FsvolDeviceExtension->SwapVpb = 0;
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
} }
else else
{ {
@ -299,7 +299,7 @@ VOID FspVolumeDelete(
ExReleaseResourceLite(&FsvolDeviceExtension->DeleteResource); ExReleaseResourceLite(&FsvolDeviceExtension->DeleteResource);
/* release the volume device object */ /* release the volume device object */
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
} }
static VOID FspVolumeDeleteDelayed(PVOID Context) static VOID FspVolumeDeleteDelayed(PVOID Context)
@ -322,7 +322,7 @@ static VOID FspVolumeDeleteDelayed(PVOID Context)
{ {
FspFreeExternal(FsvolDeviceExtension->SwapVpb); FspFreeExternal(FsvolDeviceExtension->SwapVpb);
FsvolDeviceExtension->SwapVpb = 0; FsvolDeviceExtension->SwapVpb = 0;
FspDeviceRelease(FsvolDeviceObject); FspDeviceDereference(FsvolDeviceObject);
} }
else else
{ {
@ -354,7 +354,7 @@ NTSTATUS FspVolumeMount(
{ {
Result = STATUS_UNRECOGNIZED_VOLUME; Result = STATUS_UNRECOGNIZED_VOLUME;
for (ULONG i = 0; DeviceObjectCount > i; i++) for (ULONG i = 0; DeviceObjectCount > i; i++)
if (FspDeviceRetain(DeviceObjects[i])) if (FspDeviceReference(DeviceObjects[i]))
{ {
if (FspFsvolDeviceExtensionKind == FspDeviceExtension(DeviceObjects[i])->Kind) if (FspFsvolDeviceExtensionKind == FspDeviceExtension(DeviceObjects[i])->Kind)
{ {
@ -366,13 +366,13 @@ NTSTATUS FspVolumeMount(
if (!FspIoqStopped(FsvolDeviceExtension->Ioq)) if (!FspIoqStopped(FsvolDeviceExtension->Ioq))
{ {
Result = STATUS_SUCCESS; Result = STATUS_SUCCESS;
/* break out of the loop without FspDeviceRelease or DeleteResource release! */ /* break out of the loop without FspDeviceDereference or DeleteResource release! */
break; break;
} }
ExReleaseResourceLite(&FsvolDeviceExtension->DeleteResource); ExReleaseResourceLite(&FsvolDeviceExtension->DeleteResource);
} }
} }
FspDeviceRelease(DeviceObjects[i]); FspDeviceDereference(DeviceObjects[i]);
} }
FspDeviceDeleteList(DeviceObjects, DeviceObjectCount); FspDeviceDeleteList(DeviceObjects, DeviceObjectCount);
} }
@ -381,10 +381,10 @@ NTSTATUS FspVolumeMount(
/* /*
* At this point the volume device object we are going to use in the VPB * At this point the volume device object we are going to use in the VPB
* has been FspDeviceRetain'ed and the volume DeleteResource has been acquired. * has been FspDeviceReference'ed and the volume DeleteResource has been acquired.
* We will increment the VPB's ReferenceCount so that we can do a delayed delete * We will increment the VPB's ReferenceCount so that we can do a delayed delete
* of the volume device later on. Once done with the VPB we can release the * of the volume device later on. Once done with the VPB we can release the
* DeleteResource. [The volume device remains FspDeviceRetain'ed!] * DeleteResource. [The volume device remains FspDeviceReference'ed!]
*/ */
ASSERT(0 != FsvolDeviceObject && 0 != FsvolDeviceExtension); ASSERT(0 != FsvolDeviceObject && 0 != FsvolDeviceExtension);
IoAcquireVpbSpinLock(&Irql); IoAcquireVpbSpinLock(&Irql);