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"
//#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/
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);
return STATUS_SUCCESS;
}
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);
return STATUS_SUCCESS;
}
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);
return STATUS_SUCCESS;
}
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);
return STATUS_SUCCESS;

View file

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

View file

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

View file

@ -10,25 +10,34 @@
#include "npfs.h"
//#define NDEBUG
#include <debug.h>
ULONG NpfsDebugLevel = NPFS_DL_API_TRACE;
static VOID NpfsInitializeVcb(PNPFS_VCB Vcb);
/* 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
DriverEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath)
DriverEntry(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
PNPFS_DEVICE_EXTENSION DeviceExtension;
PDEVICE_OBJECT DeviceObject;
UNICODE_STRING DeviceName;
UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\NamedPipe");
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_WAITER_ENTRY) <= FIELD_OFFSET(IRP, Tail.Overlay.DriverContext));
@ -50,7 +59,6 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
DriverObject->DriverUnload = NULL;
RtlInitUnicodeString(&DeviceName, L"\\Device\\NamedPipe");
Status = IoCreateDevice(DriverObject,
sizeof(NPFS_DEVICE_EXTENSION),
&DeviceName,
@ -60,7 +68,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
&DeviceObject);
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;
}
@ -85,36 +93,4 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
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 */

View file

@ -6,10 +6,9 @@
#include <stdarg.h>
#include <stdio.h>
#include <debug.h>
/* Debug Levels */
#define NPFS_DL_NONE 0x00000000
#define NPFS_DL_API_TRACE 0x00000001
#define DPFLTR_NPFS_ID DPFLTR_FASTFAT_ID
/* Node type codes for NPFS */
#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) )
NTSTATUS NTAPI NpfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsCreateNamedPipe(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsCreate;
DRIVER_DISPATCH NpfsCreateNamedPipe;
DRIVER_DISPATCH NpfsCleanup;
DRIVER_DISPATCH NpfsClose;
NTSTATUS NTAPI NpfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsRead;
DRIVER_DISPATCH NpfsWrite;
NTSTATUS NTAPI NpfsFlushBuffers(PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsFlushBuffers;
NTSTATUS NTAPI NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsFileSystemControl;
DRIVER_DISPATCH NpfsDirectoryControl;
NTSTATUS NTAPI NpfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
NTSTATUS NTAPI NpfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsQueryInformation;
DRIVER_DISPATCH NpfsSetInformation;
NTSTATUS NTAPI NpfsQueryVolumeInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp);
DRIVER_DISPATCH NpfsQueryVolumeInformation;
NTSTATUS NTAPI
DriverEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath);
VOID NTAPI
NpfsDbgPrint(ULONG Level, char *fmt, ...);
DRIVER_INITIALIZE DriverEntry;
#endif /* __DRIVERS_FS_NP_NPFS_H */

View file

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="npfs" type="kernelmodedriver" installbase="system32/drivers" installname="npfs.sys">
<include base="npfs">.</include>
<define name="__NO_CTYPE_INLINES" />
<library>ntoskrnl</library>
<library>hal</library>

View file

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

View file

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