/* FIXME */
GUID MountedDevicesGuid = {0x53F5630D, 0xB6BF, 0x11D0, {0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B}};
+PDEVICE_OBJECT gdeviceObject;
KEVENT UnloadEvent;
LONG Unloading;
-PWSTR Cunc = L"\\??\\C:";
+static const WCHAR Cunc[] = L"\\??\\C:";
/*
* TODO:
IN UCHAR Letter,
IN PMOUNTDEV_UNIQUE_ID UniqueId OPTIONAL)
{
- NTSTATUS Status;
+ NTSTATUS Status = STATUS_UNSUCCESSFUL;
/* Allocate a big enough buffer to contain the symbolic link */
DriveLetter->MaximumLength = sizeof(DosDevices.Buffer) + 3 * sizeof(WCHAR);
/* The associate FO can't have a file name */
if (FileObject->FileName.Length)
{
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(FileObject);
return STATUS_OBJECT_NAME_NOT_FOUND;
}
&IoStatusBlock);
if (!Irp)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
&IoStatusBlock);
if (!Irp)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
&IoStatusBlock);
if (!Irp)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
Name = AllocatePool(sizeof(MOUNTDEV_NAME));
if (!Name)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
Stack = IoGetNextIrpStackLocation(Irp);
Stack->FileObject = FileObject;
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
Name = AllocatePool(Size);
if (!Name)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
Stack = IoGetNextIrpStackLocation(Irp);
Stack->FileObject = FileObject;
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
if (!Irp)
{
FreePool(Id);
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
Stack = IoGetNextIrpStackLocation(Irp);
Stack->FileObject = FileObject;
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
Id = AllocatePool(Size);
if (!Id)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
Stack = IoGetNextIrpStackLocation(Irp);
Stack->FileObject = FileObject;
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
&IoStatusBlock);
if (!Irp)
{
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
Stack = IoGetNextIrpStackLocation(Irp);
Stack->FileObject = FileObject;
- Status = IofCallDriver(DeviceObject, Irp);
+ Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
*HasGuid = NT_SUCCESS(Status);
}
- ObfDereferenceObject(DeviceObject);
- ObfDereferenceObject(FileObject);
+ ObDereferenceObject(DeviceObject);
+ ObDereferenceObject(FileObject);
return Status;
}
/*
* @implemented
*/
-ULONG
+BOOLEAN
MountmgrReadNoAutoMount(IN PUNICODE_STRING RegistryPath)
{
NTSTATUS Status;
NULL);
if (!NT_SUCCESS(Status))
{
- return Default;
+ return (Default != 0);
}
- return Result;
+ return (Result != 0);
}
/*
if (RtlEqualUnicodeString(&(DeviceInformation->SymbolicName), &(CurrentDevice->SymbolicName), TRUE))
{
- break;
+ break;
}
}
/* If it's OK, set it and save its letter (if any) */
if (SuggestedLinkName.Buffer && IsDriveLetter(&SuggestedLinkName))
{
- DeviceInformation->SuggestedDriveLetter = SuggestedLinkName.Buffer[LETTER_POSITION];
+ DeviceInformation->SuggestedDriveLetter = (UCHAR)SuggestedLinkName.Buffer[LETTER_POSITION];
}
/* Acquire driver exclusively */
if (RtlEqualUnicodeString(&(DeviceInformation->DeviceName), &TargetDeviceName, TRUE))
{
- break;
+ break;
}
}
* @implemented
*/
VOID
+NTAPI
MountMgrCancel(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
Irp->IoStatus.Information = 0;
Irp->IoStatus.Status = STATUS_CANCELLED;
- IofCompleteRequest(Irp, IO_NO_INCREMENT);
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
}
/*