Use dynamic traces

Some cleanup

svn path=/trunk/; revision=32301
This commit is contained in:
Hervé Poussineau 2008-02-11 16:54:05 +00:00
parent b99dafb180
commit be80dacf70
8 changed files with 91 additions and 124 deletions

View file

@ -10,42 +10,43 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsCreate(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
NpfsDbgPrint(NPFS_DL_API_TRACE, "IRP_MJ_CREATE\n"); TRACE_(NPFS, "IRP_MJ_CREATE\n");
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsCreateNamedPipe(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
NpfsDbgPrint(NPFS_DL_API_TRACE, "IRP_MJ_CREATE Named Pipe\n"); TRACE_(NPFS, "IRP_MJ_CREATE Named Pipe\n");
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsCleanup(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
NpfsDbgPrint(NPFS_DL_API_TRACE, "Cleanup\n"); TRACE_(NPFS, "Cleanup\n");
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsClose(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
NpfsDbgPrint(NPFS_DL_API_TRACE, "IRP_MJ_CLOSE\n"); TRACE_(NPFS, "IRP_MJ_CLOSE\n");
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS; return STATUS_SUCCESS;

View file

@ -10,19 +10,17 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsQueryInformation(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsQueryInformation()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsQueryInformation()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();
@ -31,13 +29,14 @@ NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp)
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsSetInformation(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsSetInformation()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsSetInformation()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();

View file

@ -10,19 +10,17 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsDirectoryControl(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsDirectoryControl()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsDirectoryControl()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();
@ -31,13 +29,14 @@ NpfsDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsFileSystemControl(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsFileSystemControl()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsFileSystemControl()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();

View file

@ -10,25 +10,34 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
ULONG NpfsDebugLevel = NPFS_DL_API_TRACE;
static VOID NpfsInitializeVcb(PNPFS_VCB Vcb);
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
static VOID
NpfsInitializeVcb(OUT PNPFS_VCB Vcb)
{
/* Initialize Volume Control Block, it's one per whole named pipe
file system. */
TRACE_(NPFS, "NpfsInitializeVcb(), Vcb = %p\n", Vcb);
/* Zero-init whole VCB */
RtlZeroMemory(Vcb, sizeof(NPFS_VCB));
/* Initialize the common header */
Vcb->NodeTypeCode = NPFS_NODETYPE_VCB;
Vcb->NodeByteSize = sizeof(NPFS_VCB);
}
NTSTATUS NTAPI NTSTATUS NTAPI
DriverEntry(PDRIVER_OBJECT DriverObject, DriverEntry(IN PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath) IN PUNICODE_STRING RegistryPath)
{ {
PNPFS_DEVICE_EXTENSION DeviceExtension; PNPFS_DEVICE_EXTENSION DeviceExtension;
PDEVICE_OBJECT DeviceObject; PDEVICE_OBJECT DeviceObject;
UNICODE_STRING DeviceName; UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\NamedPipe");
NTSTATUS Status; NTSTATUS Status;
DPRINT("Named Pipe File System Driver v0.1\n"); TRACE_(NPFS, "DriverEntry(%p, %wZ)", DriverObject, RegistryPath);
ASSERT (sizeof(NPFS_CONTEXT) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext)); ASSERT (sizeof(NPFS_CONTEXT) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext));
ASSERT (sizeof(NPFS_WAITER_ENTRY) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext)); ASSERT (sizeof(NPFS_WAITER_ENTRY) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext));
@ -50,7 +59,6 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
DriverObject->DriverUnload = NULL; DriverObject->DriverUnload = NULL;
RtlInitUnicodeString(&DeviceName, L"\\Device\\NamedPipe");
Status = IoCreateDevice(DriverObject, Status = IoCreateDevice(DriverObject,
sizeof(NPFS_DEVICE_EXTENSION), sizeof(NPFS_DEVICE_EXTENSION),
&DeviceName, &DeviceName,
@ -60,7 +68,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
&DeviceObject); &DeviceObject);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT("Failed to create named pipe device! (Status %x)\n", Status); WARN_(NPFS, "Failed to create named pipe device! (Status 0x%08x)\n", Status);
return Status; return Status;
} }
@ -85,36 +93,4 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
static VOID
NpfsInitializeVcb(PNPFS_VCB Vcb)
{
/* Initialize Volume Control Block, it's one per whole named pipe
file system. */
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsInitializeVcb(), Vcb = %p\n", Vcb);
/* Zero-init whole VCB */
RtlZeroMemory(Vcb, sizeof(NPFS_VCB));
/* Initialize the common header */
Vcb->NodeTypeCode = NPFS_NODETYPE_VCB;
Vcb->NodeByteSize = sizeof(NPFS_VCB);
}
VOID NTAPI
NpfsDbgPrint(ULONG Level, char *fmt, ...)
{
va_list args;
char str[300];
if (!(NpfsDebugLevel & Level))
return;
va_start(args, fmt);
vsnprintf(str, sizeof(str), fmt, args);
va_end(args);
DbgPrint ("%4.4d: NPFS %s", PsGetCurrentProcessId(), str);
}
/* EOF */ /* EOF */

View file

@ -6,10 +6,9 @@
#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <debug.h>
/* Debug Levels */ #define DPFLTR_NPFS_ID DPFLTR_FASTFAT_ID
#define NPFS_DL_NONE 0x00000000
#define NPFS_DL_API_TRACE 0x00000001
/* Node type codes for NPFS */ /* Node type codes for NPFS */
#define NPFS_NODETYPE_VCB 0x401 #define NPFS_NODETYPE_VCB 0x401
@ -125,29 +124,24 @@ extern NPAGED_LOOKASIDE_LIST NpfsPipeDataLookasideList;
#define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) ) #define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) )
NTSTATUS NTAPI NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsCreate;
NTSTATUS NTAPI NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsCreateNamedPipe;
NTSTATUS NTAPI NpfsCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsCleanup;
NTSTATUS NTAPI NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsClose;
NTSTATUS NTAPI NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsRead;
NTSTATUS NTAPI NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsWrite;
NTSTATUS NTAPI NpfsFlushBuffers(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsFlushBuffers;
NTSTATUS NTAPI NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsFileSystemControl;
NTSTATUS NTAPI NpfsDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsDirectoryControl;
NTSTATUS NTAPI NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsQueryInformation;
NTSTATUS NTAPI NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsSetInformation;
NTSTATUS NTAPI NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp); DRIVER_DISPATCH NpfsQueryVolumeInformation;
NTSTATUS NTAPI DRIVER_INITIALIZE DriverEntry;
DriverEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath);
VOID NTAPI
NpfsDbgPrint(ULONG Level, char *fmt, ...);
#endif /* __DRIVERS_FS_NP_NPFS_H */ #endif /* __DRIVERS_FS_NP_NPFS_H */

View file

@ -1,7 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<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>
<define name="__NO_CTYPE_INLINES" /> <define name="__NO_CTYPE_INLINES" />
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>

View file

@ -10,18 +10,16 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
#ifndef NDEBUG #ifndef NDEBUG
VOID HexDump(PUCHAR Buffer, ULONG Length) VOID HexDump(IN PUCHAR Buffer,
IN SIZE_T Length)
{ {
CHAR Line[65]; CHAR Line[65];
UCHAR ch; UCHAR ch;
const char Hex[] = "0123456789ABCDEF"; const char Hex[] = "0123456789ABCDEF";
int i, j; ULONG i, j;
DbgPrint("---------------\n"); DbgPrint("---------------\n");
@ -44,13 +42,14 @@ VOID HexDump(PUCHAR Buffer, ULONG Length)
#endif #endif
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsRead(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsRead()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsRead()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();
@ -59,13 +58,14 @@ NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp)
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsWrite(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsWrite()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsWrite()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();
@ -74,13 +74,14 @@ NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
} }
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsFlushBuffers(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsFlushBuffers(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsFlushBuffers()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsFlushBuffers()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();

View file

@ -10,19 +10,17 @@
#include "npfs.h" #include "npfs.h"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
NTSTATUS NTAPI NTSTATUS NTAPI
NpfsQueryVolumeInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp) NpfsQueryVolumeInformation(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{ {
TRACE_(NPFS, "NpfsQueryVolumeInformation()\n");
FsRtlEnterFileSystem(); FsRtlEnterFileSystem();
NpfsDbgPrint(NPFS_DL_API_TRACE, "NpfsQueryVolumeInformation()\n"); UNIMPLEMENTED;
/* TODO: Implement */
IoCompleteRequest(Irp, IO_NO_INCREMENT); IoCompleteRequest(Irp, IO_NO_INCREMENT);
FsRtlExitFileSystem(); FsRtlExitFileSystem();