INFO: The Windows 98 PageFile_Call_Async_Manager ServiceID: Q223294
|
Windows 98 added a new feature, PageFile_Call_Async_Manager, that allows the Memory Manager to asynchronously write out page file (swap file) buffers during periods of time when VFAT file system activity is not busy.
This feature can affect the behavior of VxDs that monitor and/or otherwise intercept PageFile VxD functions. This article is applicable to you if your VxD hooks PageFile_Read_Or_Write, and you discover that you are not seeing all the page file traffic when using Windows 98.
You can disable this feature, causing the system to behave as Windows 95 does, at some cost in overall system performance. Add the following entry to the System.ini file, in its [386Enh] section:
[386Enh]
ConservativeSwapfileUsage=1
When the above Boolean is set to TRUE as shown, PageFile_Call_Async_Manager is never called. If this entry is absent from System.ini, the default setting for ConservativeSwapfileUsage is 1 for Windows 95, and 0 (zero) for Windows 98.
ULONG INTERNAL mmFsIdle(void);
In return, PageFile_Call_Async_Manager returns a pointer to a function that Memory Manager uses to perform the (async) writes to the pagefile:
extern int (CDECL *pfnAsyncPageOut)(PVOID pvBuffer, ULONG bFileOffset);
This function is actually inside VFAT (WriteAsyncSwapPage), which copies one page into its cache buffer and writes it. mmFsIdle uses an algorithm that generates pfnAsyncPageOut calls (that are actually calls to the internal VFAT routine).
mov eax, offset32 _mmFsIdle@0 ; Our idle callback.
VxDCall PageFile_Call_Async_Manager ; NOTE: the manager is VFAT.
jc DICDoneP ; Failed.
mov _pfnAsyncPageOut, eax
Additional query words:
Keywords : kbDDK kbKMode kbWinOS98
Version : WINDOWS:; Win98:
Platform : WINDOWS Win98
Issue type : kbinfo
Last Reviewed: May 7, 1999