mirror of
https://github.com/reactos/reactos.git
synced 2025-05-20 17:45:06 +00:00
Build file system drivers w/ W32API headers.
svn path=/trunk/; revision=15972
This commit is contained in:
parent
b0d3f5b991
commit
e0463986d3
33 changed files with 73 additions and 60 deletions
|
@ -213,7 +213,9 @@ typedef struct _CCB
|
||||||
ULONG LastOffset;
|
ULONG LastOffset;
|
||||||
} CCB, *PCCB;
|
} CCB, *PCCB;
|
||||||
|
|
||||||
|
#ifndef TAG
|
||||||
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define TAG_CCB TAG('I', 'C', 'C', 'B')
|
#define TAG_CCB TAG('I', 'C', 'C', 'B')
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<module name="cdfs" type="kernelmodedriver" installbase="system32/drivers" installname="cdfs.sys">
|
<module name="cdfs" type="kernelmodedriver" installbase="system32/drivers" installname="cdfs.sys">
|
||||||
<bootstrap base="reactos" />
|
<bootstrap base="reactos" />
|
||||||
<include base="cdfs">.</include>
|
<include base="cdfs">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>cdfs.c</file>
|
<file>cdfs.c</file>
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
|
#include <ntddcdrm.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
/* DEFINES ******************************************************************/
|
/* DEFINES ******************************************************************/
|
||||||
|
|
||||||
#define ROUND_DOWN(N, S) (((N) / (S)) * (S))
|
#define ROUND_DOWN(N, S) (((N) / (S)) * (S))
|
||||||
|
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include <ntos/kefuncs.h>
|
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -39,7 +38,6 @@
|
||||||
|
|
||||||
/* MACROS *******************************************************************/
|
/* MACROS *******************************************************************/
|
||||||
|
|
||||||
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
|
||||||
#define TAG_FCB TAG('I', 'F', 'C', 'B')
|
#define TAG_FCB TAG('I', 'F', 'C', 'B')
|
||||||
|
|
||||||
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
|
#include <ntddcdrm.h>
|
||||||
#include <ntos/minmax.h>
|
#include <ntos/minmax.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -27,8 +27,9 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <rosrtl/string.h>
|
#include <ntdddisk.h>
|
||||||
|
#include <ntddcdrm.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -102,7 +103,8 @@ FsRecCdfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
IN PIRP Irp)
|
IN PIRP Irp)
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
UNICODE_STRING RegistryPath;
|
static UNICODE_STRING RegistryPath =
|
||||||
|
RTL_CONSTANT_STRING(L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Cdfs");
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -121,8 +123,6 @@ FsRecCdfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
|
||||||
case IRP_MN_LOAD_FILE_SYSTEM:
|
case IRP_MN_LOAD_FILE_SYSTEM:
|
||||||
DPRINT("Cdfs: IRP_MN_LOAD_FILE_SYSTEM\n");
|
DPRINT("Cdfs: IRP_MN_LOAD_FILE_SYSTEM\n");
|
||||||
RtlRosInitUnicodeStringFromLiteral(&RegistryPath,
|
|
||||||
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Cdfs");
|
|
||||||
Status = ZwLoadDriver(&RegistryPath);
|
Status = ZwLoadDriver(&RegistryPath);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <rosrtl/string.h>
|
#include <ntdddisk.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -186,7 +186,8 @@ FsRecVfatFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
IN PIRP Irp)
|
IN PIRP Irp)
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
UNICODE_STRING RegistryPath;
|
static UNICODE_STRING RegistryPath =
|
||||||
|
RTL_CONSTANT_STRING(L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Vfatfs");
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -205,8 +206,6 @@ FsRecVfatFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
|
||||||
case IRP_MN_LOAD_FILE_SYSTEM:
|
case IRP_MN_LOAD_FILE_SYSTEM:
|
||||||
DPRINT("FAT: IRP_MN_LOAD_FILE_SYSTEM\n");
|
DPRINT("FAT: IRP_MN_LOAD_FILE_SYSTEM\n");
|
||||||
RtlRosInitUnicodeStringFromLiteral(&RegistryPath,
|
|
||||||
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Vfatfs");
|
|
||||||
Status = ZwLoadDriver(&RegistryPath);
|
Status = ZwLoadDriver(&RegistryPath);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -154,7 +154,7 @@ FsRecRegisterFs(PDRIVER_OBJECT DriverObject,
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||||
OPEN_EXISTING,
|
FILE_OPEN,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
0);
|
0);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<module name="fs_rec" type="kernelmodedriver" installbase="system32/drivers" installname="fs_rec.sys">
|
<module name="fs_rec" type="kernelmodedriver" installbase="system32/drivers" installname="fs_rec.sys">
|
||||||
<include base="fs_rec">.</include>
|
<include base="fs_rec">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>blockdev.c</file>
|
<file>blockdev.c</file>
|
||||||
|
|
|
@ -27,7 +27,8 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
|
#include <ntdddisk.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -99,7 +100,8 @@ FsRecNtfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
IN PIRP Irp)
|
IN PIRP Irp)
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
UNICODE_STRING RegistryPath;
|
static UNICODE_STRING RegistryPath =
|
||||||
|
RTL_CONSTANT_STRING(L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Ntfs");
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -119,8 +121,6 @@ FsRecNtfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
|
||||||
case IRP_MN_LOAD_FILE_SYSTEM:
|
case IRP_MN_LOAD_FILE_SYSTEM:
|
||||||
DPRINT("NTFS: IRP_MN_LOAD_FILE_SYSTEM\n");
|
DPRINT("NTFS: IRP_MN_LOAD_FILE_SYSTEM\n");
|
||||||
RtlInitUnicodeString(&RegistryPath,
|
|
||||||
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Ntfs");
|
|
||||||
Status = ZwLoadDriver(&RegistryPath);
|
Status = ZwLoadDriver(&RegistryPath);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,8 +27,9 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <rosrtl/string.h>
|
#include <ntdddisk.h>
|
||||||
|
#include <ntddcdrm.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
@ -258,7 +259,8 @@ FsRecUdfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
IN PIRP Irp)
|
IN PIRP Irp)
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
UNICODE_STRING RegistryPath;
|
static UNICODE_STRING RegistryPath =
|
||||||
|
RTL_CONSTANT_STRING(L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Udfs");
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -277,8 +279,6 @@ FsRecUdfsFsControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
|
||||||
case IRP_MN_LOAD_FILE_SYSTEM:
|
case IRP_MN_LOAD_FILE_SYSTEM:
|
||||||
DPRINT("Udfs: IRP_MN_LOAD_FILE_SYSTEM\n");
|
DPRINT("Udfs: IRP_MN_LOAD_FILE_SYSTEM\n");
|
||||||
RtlRosInitUnicodeStringFromLiteral(&RegistryPath,
|
|
||||||
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Udfs");
|
|
||||||
Status = ZwLoadDriver(&RegistryPath);
|
Status = ZwLoadDriver(&RegistryPath);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,8 +9,9 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <ddk/iotypes.h> /* FIXME: Temporary Until NDK implemented */
|
/* FIXME: The headers are broken! */
|
||||||
|
#undef CreateMailslot
|
||||||
#include "msfs.h"
|
#include "msfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
@ -137,7 +138,10 @@ MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject,
|
||||||
return(STATUS_NO_MEMORY);
|
return(STATUS_NO_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!RtlCreateUnicodeString(&Mailslot->Name, FileObject->FileName.Buffer))
|
Mailslot->Name.Length = FileObject->FileName.Length;
|
||||||
|
Mailslot->Name.MaximumLength = Mailslot->Name.Length + sizeof(UNICODE_NULL);
|
||||||
|
Mailslot->Name.Buffer = ExAllocatePool(NonPagedPool, Mailslot->Name.MaximumLength);
|
||||||
|
if (Mailslot->Name.Buffer == NULL)
|
||||||
{
|
{
|
||||||
ExFreePool(Mailslot);
|
ExFreePool(Mailslot);
|
||||||
|
|
||||||
|
@ -149,6 +153,8 @@ MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject,
|
||||||
return(STATUS_NO_MEMORY);
|
return(STATUS_NO_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RtlCopyUnicodeString(&Mailslot->Name, &FileObject->FileName);
|
||||||
|
|
||||||
Fcb = ExAllocatePool(NonPagedPool, sizeof(MSFS_FCB));
|
Fcb = ExAllocatePool(NonPagedPool, sizeof(MSFS_FCB));
|
||||||
if (Fcb == NULL)
|
if (Fcb == NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include "msfs.h"
|
#include "msfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
@ -31,19 +31,19 @@ MsfsQueryMailslotInformation(PMSFS_FCB Fcb,
|
||||||
|
|
||||||
Mailslot = Fcb->Mailslot;
|
Mailslot = Fcb->Mailslot;
|
||||||
|
|
||||||
Buffer->MaxMessageSize = Mailslot->MaxMessageSize;
|
Buffer->MaximumMessageSize = Mailslot->MaxMessageSize;
|
||||||
Buffer->Timeout = Mailslot->TimeOut;
|
Buffer->ReadTimeout = Mailslot->TimeOut;
|
||||||
|
|
||||||
KeAcquireSpinLock(&Mailslot->MessageListLock, &oldIrql);
|
KeAcquireSpinLock(&Mailslot->MessageListLock, &oldIrql);
|
||||||
Buffer->MessageCount = Mailslot->MessageCount;
|
Buffer->MessagesAvailable = Mailslot->MessageCount;
|
||||||
if (Mailslot->MessageCount == 0)
|
if (Mailslot->MessageCount == 0)
|
||||||
{
|
{
|
||||||
Buffer->NextSize = 0;
|
Buffer->NextMessageSize = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* FIXME: read size of first message (head) */
|
/* FIXME: read size of first message (head) */
|
||||||
Buffer->NextSize = 0;
|
Buffer->NextMessageSize = 0;
|
||||||
}
|
}
|
||||||
KeReleaseSpinLock(&Mailslot->MessageListLock, oldIrql);
|
KeReleaseSpinLock(&Mailslot->MessageListLock, oldIrql);
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ MsfsSetMailslotInformation(PMSFS_FCB Fcb,
|
||||||
if (*BufferLength < sizeof(FILE_MAILSLOT_SET_INFORMATION))
|
if (*BufferLength < sizeof(FILE_MAILSLOT_SET_INFORMATION))
|
||||||
return(STATUS_BUFFER_OVERFLOW);
|
return(STATUS_BUFFER_OVERFLOW);
|
||||||
|
|
||||||
Fcb->Mailslot->TimeOut = Buffer->Timeout;
|
Fcb->Mailslot->TimeOut = Buffer->ReadTimeout;
|
||||||
|
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include "msfs.h"
|
#include "msfs.h"
|
||||||
|
|
||||||
//#define NDEBUG
|
//#define NDEBUG
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include "msfs.h"
|
#include "msfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<module name="msfs" type="kernelmodedriver" installbase="system32/drivers" installname="msfs.sys">
|
<module name="msfs" type="kernelmodedriver" installbase="system32/drivers" installname="msfs.sys">
|
||||||
<include base="msfs">.</include>
|
<include base="msfs">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>create.c</file>
|
<file>create.c</file>
|
||||||
|
|
|
@ -9,8 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <ntos/minmax.h>
|
|
||||||
#include "msfs.h"
|
#include "msfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
|
|
||||||
//#define NDEBUG
|
//#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
#ifndef MUP_H
|
#ifndef MUP_H
|
||||||
#define MUP_H
|
#define MUP_H
|
||||||
|
|
||||||
#include <ddk/ntifs.h>
|
#ifndef TAG
|
||||||
|
|
||||||
|
|
||||||
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<module name="mup" type="kernelmodedriver" installbase="system32/drivers" installname="mup.sys">
|
<module name="mup" type="kernelmodedriver" installbase="system32/drivers" installname="mup.sys">
|
||||||
<include base="mup">.</include>
|
<include base="mup">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>create.c</file>
|
<file>create.c</file>
|
||||||
|
|
|
@ -9,8 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
|
|
||||||
#include "npfs.h"
|
#include "npfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
@ -387,7 +386,10 @@ NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject,
|
||||||
return STATUS_NO_MEMORY;
|
return STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RtlCreateUnicodeString(&Pipe->PipeName, FileObject->FileName.Buffer) == FALSE)
|
Pipe->PipeName.Length = FileObject->FileName.Length;
|
||||||
|
Pipe->PipeName.MaximumLength = Pipe->PipeName.Length + sizeof(UNICODE_NULL);
|
||||||
|
Pipe->PipeName.Buffer = ExAllocatePool(NonPagedPool, Pipe->PipeName.MaximumLength);
|
||||||
|
if (Pipe->PipeName.Buffer == NULL)
|
||||||
{
|
{
|
||||||
KeUnlockMutex(&DeviceExt->PipeListLock);
|
KeUnlockMutex(&DeviceExt->PipeListLock);
|
||||||
ExFreePool(Pipe);
|
ExFreePool(Pipe);
|
||||||
|
@ -398,6 +400,8 @@ NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject,
|
||||||
return STATUS_NO_MEMORY;
|
return STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RtlCopyUnicodeString(&Pipe->PipeName, &FileObject->FileName);
|
||||||
|
|
||||||
InitializeListHead(&Pipe->ServerFcbListHead);
|
InitializeListHead(&Pipe->ServerFcbListHead);
|
||||||
InitializeListHead(&Pipe->ClientFcbListHead);
|
InitializeListHead(&Pipe->ClientFcbListHead);
|
||||||
InitializeListHead(&Pipe->WaiterListHead);
|
InitializeListHead(&Pipe->WaiterListHead);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include "npfs.h"
|
#include "npfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
|
#include <napi/npipe.h>
|
||||||
#include "npfs.h"
|
#include "npfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include "npfs.h"
|
#include "npfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
@ -28,8 +28,8 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
|
||||||
|
|
||||||
DPRINT("Named Pipe FSD 0.0.2\n");
|
DPRINT("Named Pipe FSD 0.0.2\n");
|
||||||
|
|
||||||
ASSERT (sizeof(NPFS_CONTEXT) <= sizeof (((PIRP)NULL)->Tail.Overlay.DriverContext));
|
ASSERT (sizeof(NPFS_CONTEXT) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext));
|
||||||
ASSERT (sizeof(NPFS_WAITER_ENTRY) <= sizeof(((PIRP)NULL)->Tail.Overlay.DriverContext));
|
ASSERT (sizeof(NPFS_WAITER_ENTRY) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext));
|
||||||
|
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = NpfsCreate;
|
DriverObject->MajorFunction[IRP_MJ_CREATE] = NpfsCreate;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE_NAMED_PIPE] =
|
DriverObject->MajorFunction[IRP_MJ_CREATE_NAMED_PIPE] =
|
||||||
|
|
|
@ -94,6 +94,7 @@ extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList;
|
||||||
|
|
||||||
#define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
|
#define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
|
||||||
|
|
||||||
|
#define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) )
|
||||||
|
|
||||||
NTSTATUS STDCALL NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
NTSTATUS STDCALL NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
NTSTATUS STDCALL NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
NTSTATUS STDCALL NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<module name="npfs" type="kernelmodedriver" installbase="system32/drivers" installname="npfs.sys">
|
<module name="npfs" type="kernelmodedriver" installbase="system32/drivers" installname="npfs.sys">
|
||||||
<include base="npfs">.</include>
|
<include base="npfs">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>create.c</file>
|
<file>create.c</file>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <rosrtl/minmax.h>
|
#include <rosrtl/minmax.h>
|
||||||
#include "npfs.h"
|
#include "npfs.h"
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ntifs.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -27,9 +27,6 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
|
||||||
#include <ntos/kefuncs.h>
|
|
||||||
|
|
||||||
#include "ntfs.h"
|
#include "ntfs.h"
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
|
|
@ -28,14 +28,12 @@
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include "ntfs.h"
|
||||||
#include <ntos/minmax.h>
|
#include <ntdddisk.h>
|
||||||
|
|
||||||
//#define NDEBUG
|
//#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include "ntfs.h"
|
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
static NTSTATUS
|
static NTSTATUS
|
||||||
|
|
|
@ -10,7 +10,9 @@
|
||||||
((pDeviceExt)->NtfsInfo.BytesPerCluster > PAGE_SIZE ? \
|
((pDeviceExt)->NtfsInfo.BytesPerCluster > PAGE_SIZE ? \
|
||||||
(pDeviceExt)->NtfsInfo.BytesPerCluster : PAGE_SIZE)
|
(pDeviceExt)->NtfsInfo.BytesPerCluster : PAGE_SIZE)
|
||||||
|
|
||||||
|
#ifndef TAG
|
||||||
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
|
||||||
|
|
||||||
|
@ -128,8 +130,6 @@ typedef struct _CCB
|
||||||
ULONG LastOffset;
|
ULONG LastOffset;
|
||||||
} CCB, *PCCB;
|
} CCB, *PCCB;
|
||||||
|
|
||||||
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
|
||||||
|
|
||||||
#define TAG_CCB TAG('I', 'C', 'C', 'B')
|
#define TAG_CCB TAG('I', 'C', 'C', 'B')
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<module name="ntfs" type="kernelmodedriver" installbase="system32/drivers" installname="ntfs.sys">
|
<module name="ntfs" type="kernelmodedriver" installbase="system32/drivers" installname="ntfs.sys">
|
||||||
<bootstrap base="reactos" />
|
<bootstrap base="reactos" />
|
||||||
<include base="ntfs">.</include>
|
<include base="ntfs">.</include>
|
||||||
|
<define name="__USE_W32API" />
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>hal</library>
|
||||||
<file>attrib.c</file>
|
<file>attrib.c</file>
|
||||||
|
|
Loading…
Reference in a new issue