if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (EventObject) ObDereferenceObject(EventObject);
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
/* Remember to unlock later */
LockedForSynch = TRUE;
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ (void)IopLockFileObject(FileObject, KernelMode);
/* Use File Object event */
KeClearEvent(&FileObject->Event);
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ (void)IopLockFileObject(FileObject, KernelMode);
/* Use File Object event */
KeClearEvent(&FileObject->Event);
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
}
else
{
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (Event) ObDereferenceObject(Event);
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
LockedForSync = TRUE;
}
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (Event) ObDereferenceObject(Event);
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
LockedForSync = TRUE;
}
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (Event) ObDereferenceObject(Event);
+ ObDereferenceObject(FileObject);
+ if (AuxBuffer) ExFreePoolWithTag(AuxBuffer, TAG_SYSB);
+ return Status;
+ }
/* Remember to unlock later */
LockedForSynch = TRUE;
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
/* Check if the caller just wants the position */
if (FileInformationClass == FilePositionInformation)
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock the file object */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (EventObject) ObDereferenceObject(EventObject);
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
/* Check if we don't have a byte offset available */
if (!(ByteOffset) ||
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
/* Check if the caller just wants the position */
if (FileInformationClass == FilePositionInformation)
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
}
else
{
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock the file object */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ if (EventObject) ObDereferenceObject(EventObject);
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
/* Check if we don't have a byte offset available */
if (!(ByteOffset) ||
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ return Status;
+ }
}
else
{
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
/* Lock it */
- IopLockFileObject(FileObject);
+ Status = IopLockFileObject(FileObject, PreviousMode);
+ if (Status != STATUS_SUCCESS)
+ {
+ ObDereferenceObject(FileObject);
+ if (TargetDeviceObject) ObDereferenceObject(TargetDeviceObject);
+ return Status;
+ }
}
else
{