G
Guest
The code below for a simple .net c# windows app with a property grid and a
very long string for a property value causes Dell GX270 PCs with Intel 82865G
graphics card with the latest driver (6.14.10.4020) to hang and require a
hard reboot, when the tooltip is shown.
The computer appears to be locked up... and when you examine the stack of
your main thread in your test app via the kernel debugger; you see ialmdev5
on the call stack. So far it only happens on PCs with the Intel 82865G
graphics card. This is a condensed version of the call stack:
nt!KiDispatchInterrupt
hal!HalEndSystemInterrupt
nt!KiChainedDispatch+0x2f
ialmdev5!GHALGetFctTable+0x5e4c
nt!KiCallUserMode+0x4
nt!KeUserModeCallback+0x87
win32k!SfnDWORD+0xa8
win32k!xxxSendMessageToClient+0x176
win32k!xxxSendMessageTimeout+0x1a6
win32k!xxxSendMessage+0x1b
win32k!xxxUpdateWindow2+0x79
win32k!xxxInternalUpdateWindow+0x6f
win32k!xxxUpdateWindow+0xf
win32k!NtUserCallHwndLock+0x4b--
Rick
Begin simplified windows form app that cause the issue. Running the app and
hovering the mouse cursor over the long string text causes the tooltip and
locks the computer.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication5
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
PropertyGrid propGrid = new PropertyGrid();
propGrid.Size = new Size(100, 100);
Controls.Add(propGrid);
propGrid.SelectedObject = new LongStringClass();
propGrid.Dock = DockStyle.Fill;
}
public class LongStringClass
{
public LongStringClass()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for(int i=0; i<32000; i++)
{
sb.Append(',');
}
m_Str = sb.ToString();
}
private string m_Str;
public string LongString
{
get
{
return m_Str;
}
set
{
m_Str = value;
}
}
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 302);
this.Name = "Form1";
this.Text = "Form1";
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}
very long string for a property value causes Dell GX270 PCs with Intel 82865G
graphics card with the latest driver (6.14.10.4020) to hang and require a
hard reboot, when the tooltip is shown.
The computer appears to be locked up... and when you examine the stack of
your main thread in your test app via the kernel debugger; you see ialmdev5
on the call stack. So far it only happens on PCs with the Intel 82865G
graphics card. This is a condensed version of the call stack:
nt!KiDispatchInterrupt
hal!HalEndSystemInterrupt
nt!KiChainedDispatch+0x2f
ialmdev5!GHALGetFctTable+0x5e4c
nt!KiCallUserMode+0x4
nt!KeUserModeCallback+0x87
win32k!SfnDWORD+0xa8
win32k!xxxSendMessageToClient+0x176
win32k!xxxSendMessageTimeout+0x1a6
win32k!xxxSendMessage+0x1b
win32k!xxxUpdateWindow2+0x79
win32k!xxxInternalUpdateWindow+0x6f
win32k!xxxUpdateWindow+0xf
win32k!NtUserCallHwndLock+0x4b--
Rick
Begin simplified windows form app that cause the issue. Running the app and
hovering the mouse cursor over the long string text causes the tooltip and
locks the computer.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication5
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
PropertyGrid propGrid = new PropertyGrid();
propGrid.Size = new Size(100, 100);
Controls.Add(propGrid);
propGrid.SelectedObject = new LongStringClass();
propGrid.Dock = DockStyle.Fill;
}
public class LongStringClass
{
public LongStringClass()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for(int i=0; i<32000; i++)
{
sb.Append(',');
}
m_Str = sb.ToString();
}
private string m_Str;
public string LongString
{
get
{
return m_Str;
}
set
{
m_Str = value;
}
}
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 302);
this.Name = "Form1";
this.Text = "Form1";
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}