en:docs:win16:modules:kernel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:win16:modules:kernel [2023/10/14 03:18] prokusheven:docs:win16:modules:kernel [2026/03/04 07:06] (current) prokushev
Line 2: Line 2:
  
 Windows kernel for 8086 (KERNEL.EXE) doesn't uses DPMI or LDT for memory management. KERNEL.EXE for later versions of Windows emulates selectors functions via segments (like [[en:docs:FAPI]] does), but not so good (mostly functions returns errors). KRNL286.EXE and KRNL386.EXE uses direct LDT manipulations. Kernels for WOW uses DPMI functions. For now, osFree tries to reuse only DPMI (in future it is possible to implement direct LDT manipulation, may be). Windows kernel for 8086 (KERNEL.EXE) doesn't uses DPMI or LDT for memory management. KERNEL.EXE for later versions of Windows emulates selectors functions via segments (like [[en:docs:FAPI]] does), but not so good (mostly functions returns errors). KRNL286.EXE and KRNL386.EXE uses direct LDT manipulations. Kernels for WOW uses DPMI functions. For now, osFree tries to reuse only DPMI (in future it is possible to implement direct LDT manipulation, may be).
 +
 +  * [[Local Heap|DGROUP, Local Heap and Atom Table]]
  
 Note minimal checked windows version is 1.03. Note minimal checked windows version is 1.03.
Line 20: Line 22:
 | 012| [[en:docs:win16:api:kernel:LocalFlags]] | Return information about the specified local memory block | | | | 1.03 | Yes | | 012| [[en:docs:win16:api:kernel:LocalFlags]] | Return information about the specified local memory block | | | | 1.03 | Yes |
 | 013| [[en:docs:win16:api:kernel:LocalCompact]] | Generate free bytes of memory by compacting, if necessary, the module's local heap | | | | 1.03 | Yes | | 013| [[en:docs:win16:api:kernel:LocalCompact]] | Generate free bytes of memory by compacting, if necessary, the module's local heap | | | | 1.03 | Yes |
-| 014| [[en:docs:win16:api:kernel:LocalNotify]] | | | | +| 014| [[en:docs:win16:api:kernel:LocalNotify]] | Set a notification callback function for local heap events | | | 
 | 015| [[en:docs:win16:api:kernel:GlocalAlloc]] | Allocate memory from the global heap | | | | 1.03 | Yes | | 015| [[en:docs:win16:api:kernel:GlocalAlloc]] | Allocate memory from the global heap | | | | 1.03 | Yes |
 | 016| [[en:docs:win16:api:kernel:GlobalRealloc]] | Reallocate the global memory block | | | | 1.03 | Yes | | 016| [[en:docs:win16:api:kernel:GlobalRealloc]] | Reallocate the global memory block | | | | 1.03 | Yes |
Line 66: Line 68:
 | 058| [[en:docs:win16:api:kernel:GetProfileString]] | Copy a character string from the user profile into the buffer | | | | 1.03 | Yes | | 058| [[en:docs:win16:api:kernel:GetProfileString]] | Copy a character string from the user profile into the buffer | | | | 1.03 | Yes |
 | 059| [[en:docs:win16:api:kernel:WriteProfileString]] | Copy the character string into the Windows initialization file | | | | 1.03 | Yes | | 059| [[en:docs:win16:api:kernel:WriteProfileString]] | Copy the character string into the Windows initialization file | | | | 1.03 | Yes |
-| 060| [[en:docs:win16:api:kernel:FindeResource]] | Determine the location of a resource in the specified resource file | | | | 1.03 | Yes |+| 060| [[en:docs:win16:api:kernel:FindResource]] | Determine the location of a resource in the specified resource file | | | | 1.03 | Yes |
 | 061| [[en:docs:win16:api:kernel:LoadResource]] | Load a resource from the executable file associated with the module | | | | 1.03 | Yes | | 061| [[en:docs:win16:api:kernel:LoadResource]] | Load a resource from the executable file associated with the module | | | | 1.03 | Yes |
 | 062| [[en:docs:win16:api:kernel:LockResource]] | Retrieve the absolute memory address of the loaded resource | | | | 1.03 | Yes | | 062| [[en:docs:win16:api:kernel:LockResource]] | Retrieve the absolute memory address of the loaded resource | | | | 1.03 | Yes |
Line 127: Line 129:
 | 119| [[en:docs:win16:api:kernel:GetTaskQueueES]] |  | | | | | | | 119| [[en:docs:win16:api:kernel:GetTaskQueueES]] |  | | | | | |
 | 120| [[en:docs:win16:api:kernel:UndefDynLink]] |  | | | | | | | 120| [[en:docs:win16:api:kernel:UndefDynLink]] |  | | | | | |
-| 121| [[en:docs:win16:api:kernel:LocalShrink]] | | | | | | Yes |+| 121| [[en:docs:win16:api:kernel:LocalShrink]] | Shrink the specified local heap to the given size | | | | | Yes |
 | 122| [[en:docs:win16:api:kernel:IsTaskLocked]] |  | | | | | | | 122| [[en:docs:win16:api:kernel:IsTaskLocked]] |  | | | | | |
 | 123| [[en:docs:win16:api:kernel:KbdRst]] |  | | | | | | | 123| [[en:docs:win16:api:kernel:KbdRst]] |  | | | | | |
Line 167: Line 169:
 | 159| [[en:docs:win16:api:kernel:GlobalHandleNoRip]] |  | | | | | | | 159| [[en:docs:win16:api:kernel:GlobalHandleNoRip]] |  | | | | | |
 | 160| [[en:docs:win16:api:kernel:EMSCopy]] |  | | | | | | | 160| [[en:docs:win16:api:kernel:EMSCopy]] |  | | | | | |
-| 161| [[en:docs:win16:api:kernel:LocalCountFree]] |  | | | | | | +| 161| [[en:docs:win16:api:kernel:LocalCountFree]] | Return the size of the free area in the current local heap | | | | | | 
-| 162| [[en:docs:win16:api:kernel:LocalHeapSize]] |  | | | | | |+| 162| [[en:docs:win16:api:kernel:LocalHeapSize]] | Return the total size of the current local heap | | | | | |
 | 163| [[en:docs:win16:api:kernel:GlobalLRUOldest]] | | | | | | Yes | | 163| [[en:docs:win16:api:kernel:GlobalLRUOldest]] | | | | | | Yes |
 | 164| [[en:docs:win16:api:kernel:GlobalLRUNewest]] | | | | | | Yes | | 164| [[en:docs:win16:api:kernel:GlobalLRUNewest]] | | | | | | Yes |