none
Event ID: 26, exception 0x40000015

    Question

  •  

    What does it stand for?

     

    "Application popup: Station.exe - Application Error: The exception unknown software exception (0x40000015) occured in the application at location 0x7813461a."

     

    How should I understand it? -- You have assigned it a value, but you do not know why that value was assigned, eh? Who knows then?

    Tuesday, October 09, 2007 9:47 AM

Answers

  • Nice VB code.  Directly writing registers deserves you a lot worse than 0x40000015.  Did you even disable the serial port driver?  Just use a timer, writing N bytes takes 10 * N / baudrate seconds.  You should write your own device driver if that's not good enough.  Post follow-up questions to a DDK newsgroup at www.microsoft.com/communities.

    Friday, October 12, 2007 12:03 PM
    Moderator

All replies

  • Please post your VB.NET code that causes this error.
    Tuesday, October 09, 2007 11:00 AM
    Moderator
  • Sorry to say that, but this is not my program, I just write a DLL for it. And I have no opportunity to determine, which part of code is failing. Wanted to know at least direction of analysis. So far I have zero understanding what could be the source.

     

    Wednesday, October 10, 2007 8:17 AM
  • Vadim Maksimenko,

     

    Since there no related information on the error message about your application or the DLL, I would like to provide you the following related threads with the similar problem as yours, hope that can help you to understand the problem:

     

    Debugging Problems in VSNet 2005

     

    I started to have exactly the same error (iexplore.exe - Application ErrorThe exception unknown software exception (0x40000015) occurred in the application at location 0x7813461a.) after  in IE I unchecked "Disable Script Debugger(internet Explorer)".

    So I had to Disable Script Debugger again to be able start my website with debugging from VS 2005.

    I am using Windows 2003 server and VS 2005 Team Edition.

     

    Hope that can help you.

    Friday, October 12, 2007 8:16 AM
  • Finally I have found the source of the problem. I need to write directly to a COM port, because Windows standard technic sucks -- RS-232 to RS485 converter needs strictly timed RTS handling. Normal combination of WriteFile() and DCB.fRtsControl=RTS_CONTROL_TOGGLE is absolutely nonfunctional. This is a log file excerpt:

    4=[2007-10-03 14:13:21.093] 3 byte(s) to COM2: 50 20 FA
    5=[2007-10-03 14:13:21.093] COM2 has got an error
    0=[2007-10-03 14:13:21.093] COM2 has got a framing error
    0=[2007-10-03 14:13:21.093] COM2 has got a parity error
    0=[2007-10-03 14:13:21.109] Number of sent bytes is 0 instead of 3: Communication write malfunction.

    The olny solution I have found is to directly write into serial port registers (access granted via specially written driver), but... after a day of running my application collapses with the mentioned above exception. That happens not immediatelly, but after good ...teen hours.

    [code]
    unsigned Comm:Big Smileirect(const char *data,unsigned size)
    {
    const char *byte;
    char mask[2];
    unsigned count;

    mask[0]=mask[1]=dpio->GetDB(MCR); // get MCR value
    if(CTRL[0]==Control::Halfduplex)
    mask[1]|=1;
    if(CTRL[1]==Control::Halfduplex)
    mask[1]|=2;
    if(mask[0]!=mask[1])
    {
    dpio->PutDB(MCR,mask[1]); // set modem bits
    mask[0]=mask[1];
    }
    while((dpio->GetDB(LSR)&0x60)!=0x60); // wait for data holding registers to be empty
    for(byte=data,count=0;count<size;count++,byte++)
    {
    dpio->PutDB(IOR,*byte); // send a byte
    while(!(dpio->GetDB(LSR)&0x20)); // wait for data holding registers to be empty
    }
    while((dpio->GetDB(LSR)&0x60)!=0x60&&(dpio->GetDB(IIR)&3)!=2); // wait for data holding registers to be empty and interrupt pending
    if(CTRL[1]==Control::Halfduplex)
    mask[1]&=253;
    if(CTRL[0]==Control::Halfduplex)
    mask[1]&=254;
    if(mask[0]!=mask[1])
    dpio->PutDB(MCR,mask[1]); // set modem bits
    return(count);
    }
    [/code]
    So, those are my questions:

    1. Is there a *working* serial driver with *working* RTS_CONTROL_TOGGLE in the world?
    2. If negative, how might I switch off that 0x40000015 exception generation? I write "switch off" because it is described as *software* one, not hardware exception.

    Yours faithfully, Vadim.
    Friday, October 12, 2007 9:56 AM
  • Nice VB code.  Directly writing registers deserves you a lot worse than 0x40000015.  Did you even disable the serial port driver?  Just use a timer, writing N bytes takes 10 * N / baudrate seconds.  You should write your own device driver if that's not good enough.  Post follow-up questions to a DDK newsgroup at www.microsoft.com/communities.

    Friday, October 12, 2007 12:03 PM
    Moderator