Opened 14 years ago

Closed 13 years ago

Last modified 11 years ago

#480 closed defect (unknown)

bug in invoking SaveResume device driver command on device driver chain

Reported by: Lars Erdmann Owned by: eco
Priority: major Milestone:
Component: APM Compatibility Driver Version: 3.14
Keywords: Cc:

Description

There a a couple of errors in an attempt to send a SaveResume? request packet to all device drivers in the device driver chain: For once, the request packet is wrong, additionally the function code 20h (SaveResume?) is overwritten with 0 (DEVICE init). See corrections below

file "thunk.asm":

the request packet should look like this:

SRPacket       db  14           ; Size
               db  0            ; Unit
               db  20h          ; Cmd
               dw  0            ; Status
               db  0            ; Flag
               db  0,0,0        ; Reserved
               dd  0            ; Link
               db  0            ; Save/Restore

likewise at label "To16DDNotify"

delete this line:

              mov      Word Ptr es:[bx+3],0

Change History (4)

comment:1 Changed 14 years ago by Lars Erdmann

routine "SendDDNotify" : maybe it's also a very good idea to call KernSerialize16BitDD/KernUnserialize16BitDD before/after traversing the device driver chain and invoking SaveRestore? on each driver. I think that could be necessary for SMP system to properly serialize access to all the device drivers.

comment:2 Changed 14 years ago by Lars Erdmann

Version: 3.173.14

1.) correction: move Word Ptr es:[bx+3],0 has to stay in. I confused this with the offset for the command code. Nevertheless this call should be moved INSIDE the loop that invokes all device drivers entry points because it might be potentially set by each device driver

2.) maybe this code as a whole is obsolete with newer versions of APM.ADD. Will check

comment:3 Changed 13 years ago by Lars Erdmann

Resolution: unknown
Status: newclosed

comment:4 Changed 11 years ago by David Azarewicz

Milestone: eCS 2.x

Milestone eCS 2.x deleted

Note: See TracTickets for help on using tickets.