Edit

AV/C Subunit Driver Debugging

Prior to Windows Vista, the debug version of Avc.sys permits trace messages to be output to a debug window. The Windows Vista version of Avc.sys uses Event Tracing for Windows (ETW).

The AvcDebugLevel ULONG type is a bitmap of possible trace levels. Each nibble represents a category of trace output. The default value is 0x00CCCCCC, which sets all message categories to ERROR and WARNING output levels. The best setting to monitor AV/C command activity is 0x000ECCCC (adds the TRACE class of messages to the AV/C category of output). To turn off all debug output, set all bits to 0. The bitmaps for each category are described below.

Generic Message Category

The GENERIC category applies to all generic output. The most interesting class of output is FLOW that, when enabled, logs a message at each function's entry and exit points. On computers running Windows Millennium Edition (Windows Me), Windows 98, or Windows 95, all TL_FLOW (and most TL_TRACE messages) go to the .ntkern circular buffer pool. To see these log entries, use type .ntkern in the debugger, and select the D option. Press the SPACEBAR after pressing D to continue dumping the buffer, one page at a time. Press any other key to cancel the dump. To turn off the .ntkern logging and send the messages to the standard debug output, use the e ulind debugger command to set the ulind variable to 1 (the default setting is 0).

Meaning Value

TL_MASK

0x0000000F

TL_FLOW

0x00000001

TL_TRACE

0x00000002

TL_WARNING

0x00000004

TL_ERROR

0x00000008

Plug and Play Message Category

The Plug and Play (PnP) category applies to all output related to PnP.

Meaning Value

TL_PNP_MASK

0x000000F0

TL_PNP_TRACE

0x00000020

TL_PNP_WARNING

0x00000040

TL_PNP_ERROR

0x00000080

Power Management Message Category

The Power Management category applies to all output related to power management, including hibernation.

Meaning Value

TL_POWER_MASK

0x00000F00

TL_POWER_TRACE

0x00000200

TL_POWER_WARNING

0x00000400

TL_POWER_ERROR

0x00000800

I/O Message Category

The I/O category applies to all output related to interdriver communication, including IRP processing.

Meaning Value

TL_IO_MASK

0x0000F000

TL_IO_NOISE

0x00001000

TL_IO_TRACE

0x00002000

TL_IO_WARNING

0x00004000

TL_IO_ERROR

0x00008000

AV/C Message Category

The AV/C category applies to all output that is related to AV/C commands, plus some internal driver messages of potential relevance to object lists and spin locks (TL_IO_NOISE I/O Message Category). Included in the TL_IO_TRACE category of messages are command execution times.

Meaning Value

TL_AVC_MASK

0x000F0000

TL_AVC_NOISE

0x00010000

TL_AVC_TRACE

0x00020000

TL_AVC_WARNING

0x00040000

TL_AVC_ERROR

0x00080000

Connection Message Category

The Connection category deals with all plug connection-related output.

Meaning Value

TL_CXN_MASK

0x00F00000

TL_CXN_NOISE

0x00100000

TL_CXN_TRACE

0x00200000

TL_CXN_WARNING

0x00400000

TL_CXN_ERROR

0x00800000