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