Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.6 KiB

  1. BREAK <Int 2A Definitions>
  2. ;** Int 2A functions
  3. ;
  4. ; Int 2A is an interface to the network code; it's also overloaded
  5. ; as a critical section handler since critical sections
  6. ; were originally created to support the net.
  7. ;** This table was created by examining the source and may not be
  8. ; complete or completely accurate - JGL
  9. ;
  10. ; M010 MD 8/31/90 - Added definition for AH = 5
  11. ; (ah) = 0 installation check
  12. ; (returns ah !=0 if installed)
  13. ; (ah) = 1 cooked net bios call
  14. ; (ah) = 3 query drive shared
  15. ; (ds:si) = "n:" asciz string
  16. ; (ah) = 4 net bios
  17. ; (al) = 0 cooked net bios call
  18. ; (al) = 1 raw net bios call
  19. ; (al) = 2 ???
  20. ;
  21. ; (ah) = 5 Get Net Adaptor Resources. CX returns the number of
  22. ; NCBs available/outstanding. DX returns the number of
  23. ; sessions. Supposedly, this is documented in an old
  24. ; IBM PC-LAN reference. Lotus Notes uses it. DOS LAN
  25. ; Manager 2.0 Enhanced responds to it. But it should
  26. ; not be used, as it is a hack, only to get Lotus
  27. ; Notes running.
  28. ;
  29. ; (ah) = 80h enter critical section
  30. ; (ah) = 81h leave critical section
  31. ; (ah) = 82h free all critical sections (Leave-all)
  32. ; (ah) = 84h entering idle loop (don't understand how this works)
  33. Break <Critical sections>
  34. ;** Critical section definitions
  35. ;
  36. ; Although DOS is not designed to be reentrant there are some hacks
  37. ; which various programs use to make it so, in a limited fashion.
  38. ; Both WIN386 and some servers block copy a section of the DOS data
  39. ; area so that DOS can be reentered on behalf of another thread/program.
  40. ; DOS's global data structures, such as the memory arena, are not
  41. ; in this area, so critical section indicators are used to protect
  42. ; those areas. DOS flags a critical section by issuing an INT_IBM
  43. ; (int 2Ah) at each critical section entry and exit. Some clients
  44. ; (such as WIN386) just don't "context switch" the DOS when one
  45. ; of these is in effect, others, such as the IBM server, go ahead
  46. ; and reenter the DOS and if they get an int 2A to reenter the same
  47. ; critical section they then switch away from that second thread and
  48. ; let the first one finish and exit the section.
  49. ;
  50. ; These below are subject to leave-all sections
  51. critDisk EQU 1 ; Disk I/O critical section
  52. critShare EQU 1 ; Sharer I/O critical section
  53. critMem EQU 1 ; memory maintenance critical section
  54. critSFT EQU 1 ; sft table allocation
  55. critDevice EQU 2 ; Device I/O critical section
  56. critNet EQU 5 ; network critical section
  57. critIFS EQU 6 ; ifsfunc critical section
  58. ; These below are not subject to leave-all sections
  59. critASSIGN EQU 8 ; Assign has munged a system call