mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
sys: WIP
This commit is contained in:
parent
14b1f75ac7
commit
d6f1702af7
@ -6,12 +6,49 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsctlCleanup;
|
||||||
|
static DRIVER_DISPATCH FspFsvrtCleanup;
|
||||||
|
static DRIVER_DISPATCH FspFsvolCleanup;
|
||||||
DRIVER_DISPATCH FspCleanup;
|
DRIVER_DISPATCH FspCleanup;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsctlCleanup)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvrtCleanup)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolCleanup)
|
||||||
#pragma alloc_text(PAGE, FspCleanup)
|
#pragma alloc_text(PAGE, FspCleanup)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsctlCleanup(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = 0;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvrtCleanup(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = 0;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolCleanup(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspCleanup(
|
FspCleanup(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,10 +58,17 @@ FspCleanup(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_CLEANUP == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_CLEANUP == IrpSp->MajorFunction);
|
||||||
|
|
||||||
if (FspFsctlDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
FSP_RETURN(Irp->IoStatus.Information = 0);
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
FSP_RETURN(Result = FspFsvolCleanup(DeviceObject, Irp));
|
||||||
|
case FspFsvrtDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvrtCleanup(DeviceObject, Irp));
|
||||||
|
case FspFsctlDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsctlCleanup(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,49 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsctlClose;
|
||||||
|
static DRIVER_DISPATCH FspFsvrtClose;
|
||||||
|
static DRIVER_DISPATCH FspFsvolClose;
|
||||||
DRIVER_DISPATCH FspClose;
|
DRIVER_DISPATCH FspClose;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsctlClose)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvrtClose)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolClose)
|
||||||
#pragma alloc_text(PAGE, FspClose)
|
#pragma alloc_text(PAGE, FspClose)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsctlClose(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = 0;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvrtClose(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = 0;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolClose(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspClose(
|
FspClose(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,10 +58,17 @@ FspClose(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_CLOSE == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_CLOSE == IrpSp->MajorFunction);
|
||||||
|
|
||||||
if (FspFsctlDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
FSP_RETURN(Irp->IoStatus.Information = 0);
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
FSP_RETURN(Result = FspFsvolClose(DeviceObject, Irp));
|
||||||
|
case FspFsvrtDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvrtClose(DeviceObject, Irp));
|
||||||
|
case FspFsctlDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsctlClose(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,49 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsctlCreate;
|
||||||
|
static DRIVER_DISPATCH FspFsvrtCreate;
|
||||||
|
static DRIVER_DISPATCH FspFsvolCreate;
|
||||||
DRIVER_DISPATCH FspCreate;
|
DRIVER_DISPATCH FspCreate;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsctlCreate)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvrtCreate)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolCreate)
|
||||||
#pragma alloc_text(PAGE, FspCreate)
|
#pragma alloc_text(PAGE, FspCreate)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsctlCreate(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = FILE_OPENED;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvrtCreate(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = FILE_OPENED;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolCreate(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspCreate(
|
FspCreate(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,10 +58,17 @@ FspCreate(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_CREATE == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_CREATE == IrpSp->MajorFunction);
|
||||||
|
|
||||||
if (FspFsctlDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
FSP_RETURN(Irp->IoStatus.Information = FILE_OPENED);
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
FSP_RETURN(Result = FspFsvolCreate(DeviceObject, Irp));
|
||||||
|
case FspFsvrtDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvrtCreate(DeviceObject, Irp));
|
||||||
|
case FspFsctlDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsctlCreate(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ(
|
FSP_LEAVE_MJ(
|
||||||
"FileObject=%p[%p:\"%wZ\"], "
|
"FileObject=%p[%p:\"%wZ\"], "
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolDeviceControl;
|
||||||
DRIVER_DISPATCH FspDeviceControl;
|
DRIVER_DISPATCH FspDeviceControl;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolDeviceControl)
|
||||||
#pragma alloc_text(PAGE, FspDeviceControl)
|
#pragma alloc_text(PAGE, FspDeviceControl)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolDeviceControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspDeviceControl(
|
FspDeviceControl(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspDeviceControl(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_DEVICE_CONTROL == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_DEVICE_CONTROL == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolDeviceControl(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolDirectoryControl;
|
||||||
DRIVER_DISPATCH FspDirectoryControl;
|
DRIVER_DISPATCH FspDirectoryControl;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolDirectoryControl)
|
||||||
#pragma alloc_text(PAGE, FspDirectoryControl)
|
#pragma alloc_text(PAGE, FspDirectoryControl)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolDirectoryControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspDirectoryControl(
|
FspDirectoryControl(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspDirectoryControl(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_DIRECTORY_CONTROL == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_DIRECTORY_CONTROL == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolDirectoryControl(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
38
src/sys/ea.c
38
src/sys/ea.c
@ -6,14 +6,36 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolQueryEa;
|
||||||
|
static DRIVER_DISPATCH FspFsvolSetEa;
|
||||||
DRIVER_DISPATCH FspQueryEa;
|
DRIVER_DISPATCH FspQueryEa;
|
||||||
DRIVER_DISPATCH FspSetEa;
|
DRIVER_DISPATCH FspSetEa;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolQueryEa)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolSetEa)
|
||||||
#pragma alloc_text(PAGE, FspQueryEa)
|
#pragma alloc_text(PAGE, FspQueryEa)
|
||||||
#pragma alloc_text(PAGE, FspSetEa)
|
#pragma alloc_text(PAGE, FspSetEa)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolQueryEa(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolSetEa(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspQueryEa(
|
FspQueryEa(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -23,7 +45,13 @@ FspQueryEa(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_QUERY_EA == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_QUERY_EA == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolQueryEa(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
@ -37,7 +65,13 @@ FspSetEa(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_SET_EA == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_SET_EA == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolSetEa(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,36 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolQueryInformation;
|
||||||
|
static DRIVER_DISPATCH FspFsvolSetInformation;
|
||||||
DRIVER_DISPATCH FspQueryInformation;
|
DRIVER_DISPATCH FspQueryInformation;
|
||||||
DRIVER_DISPATCH FspSetInformation;
|
DRIVER_DISPATCH FspSetInformation;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolQueryInformation)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolSetInformation)
|
||||||
#pragma alloc_text(PAGE, FspQueryInformation)
|
#pragma alloc_text(PAGE, FspQueryInformation)
|
||||||
#pragma alloc_text(PAGE, FspSetInformation)
|
#pragma alloc_text(PAGE, FspSetInformation)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolQueryInformation(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolSetInformation(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspQueryInformation(
|
FspQueryInformation(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -23,7 +45,13 @@ FspQueryInformation(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_QUERY_INFORMATION == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_QUERY_INFORMATION == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolQueryInformation(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
@ -37,7 +65,13 @@ FspSetInformation(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_SET_INFORMATION == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_SET_INFORMATION == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolSetInformation(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolFlushBuffers;
|
||||||
DRIVER_DISPATCH FspFlushBuffers;
|
DRIVER_DISPATCH FspFlushBuffers;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolFlushBuffers)
|
||||||
#pragma alloc_text(PAGE, FspFlushBuffers)
|
#pragma alloc_text(PAGE, FspFlushBuffers)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolFlushBuffers(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspFlushBuffers(
|
FspFlushBuffers(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspFlushBuffers(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_FLUSH_BUFFERS == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_FLUSH_BUFFERS == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolFlushBuffers(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,45 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsctlFileSystemControl;
|
||||||
|
static DRIVER_DISPATCH FspFsvrtFileSystemControl;
|
||||||
|
static DRIVER_DISPATCH FspFsvolFileSystemControl;
|
||||||
DRIVER_DISPATCH FspFileSystemControl;
|
DRIVER_DISPATCH FspFileSystemControl;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsctlFileSystemControl)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvrtFileSystemControl)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolFileSystemControl)
|
||||||
#pragma alloc_text(PAGE, FspFileSystemControl)
|
#pragma alloc_text(PAGE, FspFileSystemControl)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsctlFileSystemControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvrtFileSystemControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolFileSystemControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspFileSystemControl(
|
FspFileSystemControl(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +54,17 @@ FspFileSystemControl(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_FILE_SYSTEM_CONTROL == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_FILE_SYSTEM_CONTROL == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsctlFileSystemControl(DeviceObject, Irp));
|
||||||
|
case FspFsvrtDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvrtFileSystemControl(DeviceObject, Irp));
|
||||||
|
case FspFsctlDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolFileSystemControl(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolLockControl;
|
||||||
DRIVER_DISPATCH FspLockControl;
|
DRIVER_DISPATCH FspLockControl;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolLockControl)
|
||||||
#pragma alloc_text(PAGE, FspLockControl)
|
#pragma alloc_text(PAGE, FspLockControl)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolLockControl(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspLockControl(
|
FspLockControl(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspLockControl(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_LOCK_CONTROL == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_LOCK_CONTROL == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolLockControl(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolRead;
|
||||||
DRIVER_DISPATCH FspRead;
|
DRIVER_DISPATCH FspRead;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolRead)
|
||||||
#pragma alloc_text(PAGE, FspRead)
|
#pragma alloc_text(PAGE, FspRead)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolRead(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspRead(
|
FspRead(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspRead(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_READ == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_READ == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolRead(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,36 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolQuerySecurity;
|
||||||
|
static DRIVER_DISPATCH FspFsvolSetSecurity;
|
||||||
DRIVER_DISPATCH FspQuerySecurity;
|
DRIVER_DISPATCH FspQuerySecurity;
|
||||||
DRIVER_DISPATCH FspSetSecurity;
|
DRIVER_DISPATCH FspSetSecurity;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolQuerySecurity)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolSetSecurity)
|
||||||
#pragma alloc_text(PAGE, FspQuerySecurity)
|
#pragma alloc_text(PAGE, FspQuerySecurity)
|
||||||
#pragma alloc_text(PAGE, FspSetSecurity)
|
#pragma alloc_text(PAGE, FspSetSecurity)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolQuerySecurity(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolSetSecurity(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspQuerySecurity(
|
FspQuerySecurity(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -23,7 +45,13 @@ FspQuerySecurity(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_QUERY_SECURITY == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_QUERY_SECURITY == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolQuerySecurity(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
@ -37,7 +65,13 @@ FspSetSecurity(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_SET_SECURITY == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_SET_SECURITY == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolSetSecurity(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolShutdown;
|
||||||
DRIVER_DISPATCH FspShutdown;
|
DRIVER_DISPATCH FspShutdown;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolShutdown)
|
||||||
#pragma alloc_text(PAGE, FspShutdown)
|
#pragma alloc_text(PAGE, FspShutdown)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolShutdown(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspShutdown(
|
FspShutdown(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspShutdown(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_SHUTDOWN == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_SHUTDOWN == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolShutdown(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,36 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolQueryVolumeInformation;
|
||||||
|
static DRIVER_DISPATCH FspFsvolSetVolumeInformation;
|
||||||
DRIVER_DISPATCH FspQueryVolumeInformation;
|
DRIVER_DISPATCH FspQueryVolumeInformation;
|
||||||
DRIVER_DISPATCH FspSetVolumeInformation;
|
DRIVER_DISPATCH FspSetVolumeInformation;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation)
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolSetVolumeInformation)
|
||||||
#pragma alloc_text(PAGE, FspQueryVolumeInformation)
|
#pragma alloc_text(PAGE, FspQueryVolumeInformation)
|
||||||
#pragma alloc_text(PAGE, FspSetVolumeInformation)
|
#pragma alloc_text(PAGE, FspSetVolumeInformation)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolQueryVolumeInformation(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolSetVolumeInformation(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspQueryVolumeInformation(
|
FspQueryVolumeInformation(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -23,7 +45,13 @@ FspQueryVolumeInformation(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_QUERY_VOLUME_INFORMATION == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_QUERY_VOLUME_INFORMATION == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolQueryVolumeInformation(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
@ -37,7 +65,13 @@ FspSetVolumeInformation(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_SET_VOLUME_INFORMATION == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_SET_VOLUME_INFORMATION == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolSetVolumeInformation(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,23 @@
|
|||||||
|
|
||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
static DRIVER_DISPATCH FspFsvolWrite;
|
||||||
DRIVER_DISPATCH FspWrite;
|
DRIVER_DISPATCH FspWrite;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspFsvolWrite)
|
||||||
#pragma alloc_text(PAGE, FspWrite)
|
#pragma alloc_text(PAGE, FspWrite)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static
|
||||||
|
NTSTATUS
|
||||||
|
FspFsvolWrite(
|
||||||
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
|
_In_ PIRP Irp)
|
||||||
|
{
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FspWrite(
|
FspWrite(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
@ -21,7 +32,13 @@ FspWrite(
|
|||||||
|
|
||||||
ASSERT(IRP_MJ_WRITE == IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_WRITE == IrpSp->MajorFunction);
|
||||||
|
|
||||||
Result = STATUS_INVALID_DEVICE_REQUEST;
|
switch (FspDeviceExtension(DeviceObject)->Kind)
|
||||||
|
{
|
||||||
|
case FspFsvolDeviceExtensionKind:
|
||||||
|
FSP_RETURN(Result = FspFsvolWrite(DeviceObject, Irp));
|
||||||
|
default:
|
||||||
|
FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user