mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 00:43:00 -05:00
sys: WIP
This commit is contained in:
parent
97924ea65e
commit
7bd979a3fd
@ -12,6 +12,7 @@ VOID FspDeviceDeleteList(
|
||||
PDEVICE_OBJECT *DeviceObjects, ULONG DeviceObjectCount);
|
||||
NTSTATUS FspDeviceOwned(
|
||||
PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT DeviceObject);
|
||||
VOID FspDeviceInitExtension(PDEVICE_OBJECT DeviceObject, UINT8 Kind);
|
||||
static VOID FspFsctlDeviceDeleteObject(PDEVICE_OBJECT DeviceObject);
|
||||
static VOID FspFsvrtDeviceDeleteObject(PDEVICE_OBJECT DeviceObject);
|
||||
static VOID FspFsvolDeviceDeleteObject(PDEVICE_OBJECT DeviceObject);
|
||||
@ -22,6 +23,7 @@ VOID FspDeviceDeleteObjects(PDRIVER_OBJECT DriverObject);
|
||||
#pragma alloc_text(PAGE, FspDeviceCreateList)
|
||||
#pragma alloc_text(PAGE, FspDeviceDeleteList)
|
||||
#pragma alloc_text(PAGE, FspDeviceOwned)
|
||||
#pragma alloc_text(PAGE, FspDeviceInitExtension)
|
||||
#pragma alloc_text(PAGE, FspFsctlDeviceDeleteObject)
|
||||
#pragma alloc_text(PAGE, FspFsvrtDeviceDeleteObject)
|
||||
#pragma alloc_text(PAGE, FspFsvolDeviceDeleteObject)
|
||||
@ -91,6 +93,16 @@ NTSTATUS FspDeviceOwned(
|
||||
return Result;
|
||||
}
|
||||
|
||||
VOID FspDeviceInitExtension(PDEVICE_OBJECT DeviceObject, UINT8 Kind)
|
||||
{
|
||||
PAGED_CODE();
|
||||
|
||||
FSP_DEVICE_EXTENSION *DeviceExtension = FspDeviceExtension(DeviceObject);
|
||||
|
||||
DeviceExtension->Kind = Kind;
|
||||
ExInitializeResourceLite(&DeviceExtension->Resource);
|
||||
}
|
||||
|
||||
static VOID FspFsctlDeviceDeleteObject(PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
PAGED_CODE();
|
||||
|
@ -39,10 +39,8 @@ NTSTATUS DriverEntry(
|
||||
&FspFsctlNetDeviceObject);
|
||||
if (!NT_SUCCESS(Result))
|
||||
FSP_RETURN(IoDeleteDevice(FspFsctlDiskDeviceObject));
|
||||
FspDeviceExtension(FspFsctlDiskDeviceObject)->Kind = FspFsctlDeviceExtensionKind;
|
||||
ExInitializeResourceLite(&FspDeviceExtension(FspFsctlDiskDeviceObject)->Resource);
|
||||
FspDeviceExtension(FspFsctlNetDeviceObject)->Kind = FspFsctlDeviceExtensionKind;
|
||||
ExInitializeResourceLite(&FspDeviceExtension(FspFsctlNetDeviceObject)->Resource);
|
||||
FspDeviceInitExtension(FspFsctlDiskDeviceObject, FspFsctlDeviceExtensionKind);
|
||||
FspDeviceInitExtension(FspFsctlNetDeviceObject, FspFsctlDeviceExtensionKind);
|
||||
|
||||
/* setup the driver object */
|
||||
DriverObject->DriverUnload = FspUnload;
|
||||
|
@ -294,6 +294,7 @@ VOID FspDeviceDeleteList(
|
||||
PDEVICE_OBJECT *DeviceObjects, ULONG DeviceObjectCount);
|
||||
NTSTATUS FspDeviceOwned(
|
||||
PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT DeviceObject);
|
||||
VOID FspDeviceInitExtension(PDEVICE_OBJECT DeviceObject, UINT8 Kind);
|
||||
VOID FspDeviceDeleteObject(PDEVICE_OBJECT DeviceObject);
|
||||
VOID FspDeviceDeleteObjects(PDRIVER_OBJECT DriverObject);
|
||||
|
||||
|
@ -101,9 +101,8 @@ static NTSTATUS FspFsctlCreateVolume(
|
||||
&FsvrtDeviceObject);
|
||||
if (NT_SUCCESS(Result))
|
||||
{
|
||||
FspDeviceInitExtension(FsvrtDeviceObject, FspFsvrtDeviceExtensionKind);
|
||||
FSP_FSVRT_DEVICE_EXTENSION *FsvrtDeviceExtension = FspFsvrtDeviceExtension(FsvrtDeviceObject);
|
||||
FsvrtDeviceExtension->Base.Kind = FspFsvrtDeviceExtensionKind;
|
||||
ExInitializeResourceLite(&FsvrtDeviceExtension->Base.Resource);
|
||||
FsvrtDeviceExtension->FsctlDeviceObject = DeviceObject;
|
||||
FsvrtDeviceExtension->VolumeParams = *Params;
|
||||
FspIoqInitialize(&FsvrtDeviceExtension->Ioq);
|
||||
@ -161,9 +160,8 @@ static NTSTATUS FspFsctlMountVolume(
|
||||
#pragma prefast(suppress:28175, "We are a filesystem: ok to access SectorSize")
|
||||
FsvolDeviceObject->SectorSize =
|
||||
FspFsvrtDeviceExtension(FsvrtDeviceObject)->VolumeParams.SectorSize;
|
||||
FspDeviceInitExtension(FsvolDeviceObject, FspFsvolDeviceExtensionKind);
|
||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
|
||||
FsvolDeviceExtension->Base.Kind = FspFsvolDeviceExtensionKind;
|
||||
ExInitializeResourceLite(&FsvolDeviceExtension->Base.Resource);
|
||||
FsvolDeviceExtension->FsvrtDeviceObject = FsvrtDeviceObject;
|
||||
ClearFlag(FsvolDeviceObject->Flags, DO_DEVICE_INITIALIZING);
|
||||
Vpb->DeviceObject = FsvolDeviceObject;
|
||||
|
Loading…
x
Reference in New Issue
Block a user