windows-nt/Source/XPSP1/NT/printscan/print/spooler/perflib/wmidata.h
2020-09-26 16:20:57 +08:00

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