Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook



The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic

Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.

If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.

Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.

Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

VXD Fatal exception errors on server

  • Filter
  • Time
  • Show
Clear All
new posts

  • VXD Fatal exception errors on server

    Does anyone have knowledge or know where to go to figure out this
    Windows error message: VXD VMM (01) + 00009398 called From 0028:
    C1548598 A in VXD V server 01+00008d7A. or Fatal Exception: OP at 3386 00000271.

    This error has begun to happen on a 3 to 4 times a day basis using A5v4 230. We had gone to a beta version—to overcome heap lock failure reboots, but that version expired and there are no more versions that will work adequately in production. Now, besides the heap lock failures –which we had thought were eliminated, these are happening on our server for no apparent cause or reason.

    We think that these errors are causing the server reboots without us doing it—ghosting reboots

    Our Cold Fusion team believes that these are normally Virtual Device error messages.—poorly or incorrectly written or linked DLL’s , blocked threads, or bad I/0 calls or ansynchronous interrupt problems ..

    Now I have no idea if it is an A5 problem—it appears to be. It is on our A5 server with huge resources.

    Some examples from our Microsoft development materials:

    "Cursor VxD State VMOUSE calls the cursor VxD's SAVERESTORESTATE function whenever an application uses Interrupt 33h, Functions 15h (Get State Storage Requirements), 16h (Save Mouse Driver State), and 17h (Restore Mouse Driver State). An application that uses the mouse can use functions 15h and 16h to save the state of the c Closing a VxD ursor VxD before temporarily transfering control to another application that also uses the mouse. When the first application regains control, it uses function 17h to restore the VxD's state.

    or another example:

    When you have finished using a VxD, you can close the associated device handle by using the CloseHandle function, or you can let the operating system close the handle when the application terminates. The following example closes a VxD. CloseHandle(hDevice);Closing a VxD does not necessarily remove the VxD from memory. If you open a dynamically loadable VxD using the LE_FLAG_DELETE_ON_CLOSE value, CloseHandle also removes the VxD if no other valid handles are present in the system. The system maintains a reference count for dynamically loadable VxDs, incrementing the count each time the VxD is opened and decrementing when the VxD is closed. CloseHandle checks this count and removes the VxD from memory when the count reaches zero. The system does not keep a reference count for static VxDs; it does not remove these VxDs when their corresponding handles are closed. In rare cases, you may need to use the DeleteFile function to remove a dynamically loadable VxD from memory. For example, you use DeleteFile if another application has loaded the VxD and you just want to unload it. You also use DeleteFile if you have successfully loaded a VxD by using CreateFile, but the VxD does not support the device IOCTL interface. In such cases, CreateFile loads the VxD but provides no handle to close and remove the VxD. The following example removes the VxD named SAMPLE from memory.
    DeleteFile("\.SAMPLE"); VMOUSE calls a cursor VxD's RESETCURSORDRIVER function to reset the VxD. Typically, a cursor VxD sets all variables that control the position and appearance to default values.

    or another

    mov edi, ThreadHandle
    mov eax, Create_Thread
    VMMCall System_Control

    Notifies a virtual device that the system is creating a new thread. Virtual devices typically create and initialize any structures needed to support the new thread. The virtual device may use all general registers and flags.
    ·The virtual device returns with carry clear to allow the thread to be created, or with carry set to prevent it from being created.
    Handle of the thread being created. The thread being created is not the current thread.
    If the virtual device sets the carry flag to prevent creation the thread, it should free any system resource it may have allocated to support the thread.

    Interrupt simulation is not permitted in the new thread during this message. Note that this message is not sent when a new virtual machine is created, even though each virtual machine also comes with a thread. Therefore, if you need to do something whenever a new thread is created, even if it is the thread of a virtual machine, you need to perform the operation on the VM_Create message as well.

    See Also
    or this:


    mov eax, Crit_Reboot_Notify
    VMMCall System_Control

    Notifies a virtual device that the system is about to restart. Virtual devices typically prepare for restarting by cleaning up data or resetting devices. The system disables interrupts before it sends this message. The virtual device may use all general registers and flags.
    ·This message cannot be failed. The virtual device must return carry clear. The virtual device must not enable interrupts, nor is simulated interrupt activity allowed. See the description of the Device_Reboot_Notify message for additional information.

    See Also
    Crit_Reboot_Notify2, Device_Reboot_Notify Notifies a virtual device that the specified non-initial thread is about to be destroyed. This is a virtual device's last chance to free resources associated with the thread before the thread goes away. The virtual device may modify all general registers and flags. This message cannot be failed. The virtual device must return carry clear.

    Handle of the thread.
    Interrupt simulation is not permitted in the thread during this message.
    This message is sent only to virtual devices marked 4.0, and it is sent in reverse initialization order. When a virtual machine is destroyed, no Destroy_Thread message is sent. Use the Destroy_VM message instead.


    mov ebx, SysVMHandle
    mov esi, OFFSET32 CommandTail
    mov eax, Device_Init
    VMMCall System_Control

    Directs the virtual device to initialize itself. The virtual device typically allocates memory for a device-specific section in the control block, allocates other memory areas, hooks interrupts and I/O ports, and specifies instance data. The virtual device may use all general registers and flags.

    · The virtual device returns carry clear if it initialized successfully. If the virtual device returns carry set, the system considers the device as having failed to initialize and removes it from the list of VxDs loaded in the system. Before returning carry set, a virtual device must release all resources it had claimed during previous initialization phases.

    Handle of the system virtual machine.
    Address of the command tail retrieved from the program segment prefix (PSP) of VMM32.VXD. The first byte in the command tail specifies the length in bytes of the tail.
    The virtual device should allocate a device-specific section in the control block of the system virtual machine and then initialize the section.
    The virtual device can call the Simulate_Int and Exec_Int services in the system virtual machine.
    For dynamically loaded VxDs, the EBX register does not contain a VM handle.
    See Also
    Init_Complete, Sys_Critical_Init


    mov eax, Device_Reboot_Notify
    VMMCall System_Control

    Notifies the virtual device that the system is about to restart. Interrupts remain enabled while virtual devices process this message. The virtual device may modify all general registers and flags.
    This message cannot be failed. The virtual device must return carry clear. When the system is about to be rebooted abnormally, virtual devices will first receive the Device_Reboot_Notify message (and possibly also the Device_Reboot_Notify2 message), at which time interrupts are enabled and simulated interrupt activity is allowed (although not encouraged). Next, virtual devices receive the Crit_Reboot_Notify message (and possibly also the Crit_Reboot_Notify2 message) with interrupts disabled, during which time interrupts must not be enabled by the virtual device, and at which time simulated interrupt activity is not allowed. Finally, virtual devices receive the Reboot_Processor message, which all devices except the virtual keyboard device should ignore.
    See Also
    Crit_Reboot_Notify, Device_Reboot_Notify2, Reboot_Processor

    Any ideas out there?