Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

164 lines
3.1 KiB

/*++
Copyright (c) 1994 - 1995 Microsoft Corporation. All Rights Reserved.
Module Name:
trace.h
Abstract:
This module defines the interface to the Mpeg API
I/O trace facility.
Author:
Jeff East [jeffe] 6-Dec-1994
Environment:
Revision History:
--*/
#ifndef TRACE_H
#define TRACE_H
#include <windows.h>
#include "mpegapi.h"
//
// Determine if tracing is wanted in this compilation.
//
// The rule is simple: if explicitly enabled, supply it.
// Otherwise, provide it in checked builds, but not in free
// builds.
//
#ifdef ENABLE_IO_TRACE
#define TRACE 1
#else
#define TRACE DBG
#endif
//
// The trace entry points expect an IoControl operation code. But some
// operations are performed using operations other than IoControl. These
// are traced using the following "pseudo-op-codes".
//
#define MPEG_PSEUDO_IOCTL_BASE 0x890U
#define FILE_DEVICE_MPEG_PSEUDO 0x00008900U
#define CTL_CODE_MPEG_PSEUDO(offset) CTL_CODE(FILE_DEVICE_MPEG_PSEUDO, \
MPEG_PSEUDO_IOCTL_BASE + offset, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_MPEG_PSEUDO_CREATE_FILE (CTL_CODE_MPEG_PSEUDO (0))
#define IOCTL_MPEG_PSEUDO_CLOSE_HANDLE (CTL_CODE_MPEG_PSEUDO (1))
//
// The trace entry points
//
#if TRACE
#ifdef __cplusplus
extern "C" {
#endif
VOID
TraceSynchronousIoctlStart (
OUT DWORD *pCookie,
IN DWORD Id,
IN DWORD Operation,
IN LPVOID pInBuffer,
IN LPVOID pOutBuffer
);
VOID
TraceSynchronousIoctlEnd (
IN DWORD Cookie,
IN DWORD Result
);
VOID
TraceIoctlStart (
IN DWORD Id,
IN DWORD Operation,
IN LPOVERLAPPED pOverlapped,
IN LPVOID pInBuffer,
IN LPVOID pOutBuffer
);
VOID
TraceIoctlEnd (
IN LPOVERLAPPED pOverlapped,
IN DWORD Result
);
VOID
TracePacketsStart (
IN DWORD Id,
IN DWORD Operation,
IN LPOVERLAPPED pOverlapped,
IN PMPEG_PACKET_LIST pPacketList,
IN UINT PacketCount
);
VOID
TraceSynchronousPacketsStart (
OUT DWORD *pCookie,
IN DWORD Id,
IN DWORD Operation,
IN PMPEG_PACKET_LIST pPacketList,
IN UINT PacketCount
);
VOID
MPEGAPI
TraceDump (
VOID
);
VOID
MPEGAPI
TraceDumpFile (
IN PUCHAR pFileName
);
#ifdef __cplusplus
}
#endif
#else
//
// Tracing isn't enabled, so just define the the trace entrypoints
// into oblivion.
//
#define TraceSynchronousIoctlStart(Cookie, eStreamType, Operation, pInBuffer, pOutBuffer)
#define TraceSynchronousIoctlEnd(Cookie, Result)
#define TraceIoctlStart(eStreamType, Operation,pOverlapped, pInBuffer, pOutBuffer)
#define TraceIoctlEnd(pOverlapped, Result)
#define TracePacketStart(eStreamType, Operation, pOverlapped, pBuffer, BufferSize)
#define TracePacketsStart(eStreamType, Operation, pOverlapped, pPacketList, PacketCount)
#define TraceSynchronousPacketsStart(pCookie, Id, Operation, pPacketList, PacketCount)
#define TraceDump()
#endif
#endif // TRACE_H