3613,29 → 3613,47 |
or subfunction 20. |
|
====================================================================== |
======== Function 68, subfunction 14 - wait for driver notify. ======= |
===================== Function 68, subfunction 14 ==================== |
====== Waiting delivering of signal from another program/driver ====== |
====================================================================== |
Parameters: |
* eax = 68 - function number |
* ebx = 14 - subfunction number |
* ecx = pointer to the buffer for information (8 bytes) |
* ecx = pointer to the buffer for information (24 bytes) |
Returned value: |
* buffer pointed to by ecx contains the following information: |
* +0: dword: constant EV_INTR = 1 |
* +4: dword: driver data |
Remarks: |
* The current implementation at wait time uses "heavy" operations |
of task switch. |
* +0: dword: identifier for underlying data of signal |
* +4: data of signal (20 bytes), format of which is defining by |
first dword |
|
====================================================================== |
====== Function 68, subfunction 15 - set FPU exception handler. ====== |
====== Function 68, subfunction 15 - set new exceptions handler ====== |
====================================================================== |
Parameters: |
* eax = 68 - function number |
* ebx = 15 - subfunction number |
* ecx = address of the new exception handler |
* edx = the mask of processing exceptions |
Returned value: |
* eax = address of the old exception handler (0, if it was not set) |
* ebx = the old mask of exception handler |
Remarks: |
* Bit number in mask of exceptions is correspond to exception number |
by CPU-specification (Intel-PC). For example, FPU-exception have |
number 16 (#MF), and SSE-exception - 19 (#XF) |
* The current implementation ignore the inquiry for hook of 7 |
exception - system process #NM by one's own. |
* User handler get exception number in stack parameter. So, correct |
exit from handler is: RET 4. Return from handler is to the same |
instruction, that was cause the exception |
* When control is transfering to user handler, corresponding bit in |
exception mask is clearing. Rising this exception in consequence |
- reduce to default-handling. Exactly: terminating the application, |
or suspending with debug-notify to owner. |
* After completion of critical operations in user handler, it may be |
rising corresponding bit in exception mask by using subfunction 18 |
Clearing exceptions flags in FPU and/or XMM modules - is |
responsibility of user handler too. |
|
====================================================================== |
============= Function 68, subfunction 16 - load driver. ============= |
3676,14 → 3694,19 |
* Previously one must obtain driver handle by subfunction 16. |
|
====================================================================== |
====== Function 68, subfunction 18 - set SSE exception handler. ====== |
==== Function 68, subfunction 18 - change state of signal activity === |
====================================================================== |
Parameters: |
* eax = 68 - function number |
* ebx = 15 - subfunction number |
* ecx = address of the new exception handler |
* ecx = signal number |
* edx = value of activity (0/1) |
Returned value: |
* eax = address of the old exception handler (0, if it was not set) |
* eax = value of old activity for this signal (0/1) |
Remarks: |
* In current implementation, it is changed only exception mask for |
user exception handler, wich was previously set by subfunction 15. |
At that, number of signal correspond to exception number. |
|
====================================================================== |
=============== Function 68, subfunction 19 - load DLL. ============== |