96 lines
2.9 KiB
C
96 lines
2.9 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1990 - 2000 Microsoft Corporation
|
||
|
All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
wmidata.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Header file for the WMI trace event datatypes.
|
||
|
|
||
|
Note -- link with spoolss.lib or perflib.lib to find these routines
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Bryan Kilian (BryanKil) May 2000
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef __WMIDEF
|
||
|
#define __WMIDEF
|
||
|
|
||
|
//
|
||
|
// WMI Structures
|
||
|
//
|
||
|
// NOTE: Placing the spooler WMI types in a public header accessible to the
|
||
|
// sdktools depot would help a lot. These structures are duplicated in the pdh
|
||
|
// source, so to change you need to change this header, the mofdata.guid file,
|
||
|
// and pdh\tracectr.
|
||
|
|
||
|
// JOB TRANSACTIONS
|
||
|
// The first four events correspond to the start and end event values found in
|
||
|
// evntrace.h. Spooljob is the start and deletejob is the end. Printjob is
|
||
|
// when the job is taken off the queue and printing has started. Trackthread is
|
||
|
// used to track secondary threads spun off to help process a job, like RPC calls.
|
||
|
#define EVENT_TRACE_TYPE_SPL_SPOOLJOB EVENT_TRACE_TYPE_START
|
||
|
#define EVENT_TRACE_TYPE_SPL_PRINTJOB EVENT_TRACE_TYPE_DEQUEUE
|
||
|
#define EVENT_TRACE_TYPE_SPL_DELETEJOB EVENT_TRACE_TYPE_END
|
||
|
#define EVENT_TRACE_TYPE_SPL_TRACKTHREAD EVENT_TRACE_TYPE_CHECKPOINT
|
||
|
|
||
|
// Non-reserved event types start at 0x0A. These match values in reducer code
|
||
|
// so they cannot be changed.
|
||
|
#define EVENT_TRACE_TYPE_SPL_ENDTRACKTHREAD 0x0A
|
||
|
#define EVENT_TRACE_TYPE_SPL_JOBRENDERED 0x0B
|
||
|
#define EVENT_TRACE_TYPE_SPL_PAUSE 0x0C
|
||
|
#define EVENT_TRACE_TYPE_SPL_RESUME 0x0D
|
||
|
|
||
|
typedef enum {
|
||
|
eDataTypeRAW = 1,
|
||
|
eDataTypeEMF = 2,
|
||
|
eDataTypeTEXT = 3
|
||
|
} SPLDATATYPE;
|
||
|
|
||
|
// The fields in this struct correspond to the records in \nt\sdktools\trace\tracedmp\mofdata.guid
|
||
|
typedef union _WMI_SPOOL_DATA {
|
||
|
// A zero indicates that the field was not filled in (i.e. WMI will ignore
|
||
|
// the field).
|
||
|
struct _WMI_JOBDATA {
|
||
|
ULONG ulSize; // Size of spooled job (post-rendered).
|
||
|
SPLDATATYPE eDataType;
|
||
|
ULONG ulPages;
|
||
|
ULONG ulPagesPerSide;
|
||
|
// 0-3 indicates whether the spool writer, spool reader, and/or shadow
|
||
|
// file were opened. If not opened then the handles must of come from
|
||
|
// the file pool cache.
|
||
|
SHORT sFilesOpened;
|
||
|
} uJobData;
|
||
|
// See wingdi.h for definitions of the different possible values.
|
||
|
struct _WMI_EMFDATA {
|
||
|
ULONG ulSize; // Size of spooled job (pre-rendered).
|
||
|
ULONG ulICMMethod;
|
||
|
SHORT sColor;
|
||
|
SHORT sXRes;
|
||
|
SHORT sYRes;
|
||
|
SHORT sQuality;
|
||
|
SHORT sCopies;
|
||
|
SHORT sTTOption;
|
||
|
} uEmfData;
|
||
|
} WMI_SPOOL_DATA, * PWMI_SPOOL_DATA;
|
||
|
|
||
|
|
||
|
|
||
|
ULONG
|
||
|
LogWmiTraceEvent(
|
||
|
DWORD JobId,
|
||
|
UCHAR EventTraceType,
|
||
|
WMI_SPOOL_DATA *data // Could be NULL
|
||
|
);
|
||
|
|
||
|
#endif
|