windows-nt/Source/XPSP1/NT/base/fs/fltsamples/filespy/user/fspylog.h
2020-09-26 16:20:57 +08:00

140 lines
2.8 KiB
C

/*++
Copyright (c) 1989-1999 Microsoft Corporation
Module Name:
log.h
Abstract:
This module contains the structures and prototypes used by the user
program to retrieve and see the log records recorded by filespy.sys.
// @@BEGIN_DDKSPLIT
Author:
Molly Brown (MollyBro) 21-Apr-1999
// @@END_DDKSPLIT
Environment:
User mode
// @@BEGIN_DDKSPLIT
Revision History:
Molly Brown (mollybro) 21-May-2002
Modify sample to make it support running on Windows 2000 or later if
built in the latest build environment and allow it to be built in W2K
and later build environments.
// @@END_DDKSPLIT
--*/
#ifndef __FSPYLOG_H__
#define __FSPYLOG_H__
#include <stdio.h>
#include "filespy.h"
#define BUFFER_SIZE 4096
typedef struct _LOG_CONTEXT{
HANDLE Device;
BOOLEAN LogToScreen;
BOOLEAN LogToFile;
ULONG VerbosityFlags; // FS_VF_DUMP_PARAMETERS, etc.
FILE *OutputFile;
BOOLEAN NextLogToScreen;
// For synchronizing shutting down of both threads
BOOLEAN CleaningUp;
HANDLE ShutDown;
}LOG_CONTEXT, *PLOG_CONTEXT;
DWORD WINAPI
RetrieveLogRecords(
LPVOID lpParameter
);
VOID
IrpFileDump(
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_IRP RecordIrp,
FILE *File,
ULONG Verbosity
);
VOID
IrpScreenDump(
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_IRP RecordIrp,
ULONG Verbosity
);
VOID
FastIoFileDump(
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_FASTIO RecordFastIo,
FILE *File
);
VOID
FastIoScreenDump(
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_FASTIO RecordFastIo
);
#if WINVER >= 0x0501 /* See comment in DriverEntry */
VOID
FsFilterOperationFileDump (
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_FS_FILTER_OPERATION RecordFsFilterOp,
FILE *File
);
VOID
FsFilterOperationScreenDump (
ULONG SequenceNumber,
PWCHAR Name,
ULONG NameLength,
PRECORD_FS_FILTER_OPERATION RecordFsFilterOp
);
#endif
#define IRP_NOCACHE 0x00000001
#define IRP_PAGING_IO 0x00000002
#define IRP_SYNCHRONOUS_API 0x00000004
#define IRP_SYNCHRONOUS_PAGING_IO 0x00000040
#if WINVER >= 0x0501
#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-1
#define FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-2
#define FS_FILTER_ACQUIRE_FOR_MOD_WRITE (UCHAR)-3
#define FS_FILTER_RELEASE_FOR_MOD_WRITE (UCHAR)-4
#define FS_FILTER_ACQUIRE_FOR_CC_FLUSH (UCHAR)-5
#define FS_FILTER_RELEASE_FOR_CC_FLUSH (UCHAR)-6
#endif
//
// Verbosity flags.
//
#define FS_VF_DUMP_PARAMETERS 0x00000001
#endif __FSPYLOG_H__