网站首页  词典首页

请输入您要查询的函数:

 

术语 mapuserphysicalpagesscatter
释义 MapUserPhysicalPagesScatter
语法:
C++
BOOL WINAPI MapUserPhysicalPagesScatter(
__in PVOID *VirtualAddresses,
__in ULONG_PTR NumberOfPages,
__in PULONG_PTR PageArray
);
MapUserPhysicalPagesScatter功能
以前分配在地图中的一个地址窗口扩展指定地址的物理内存页(AWE)的地区。
64位Itanium的Windows系统:由于在页面大小的差异,MapUserPhysicalPagesScatter不支持32位应用程序。
参数
VirtualAddresses [in]
A到了开始的内存区域地址映射数组的指针。
每一个VirtualAddresses项必须的地址范围内的VirtualAlloc函数返回时,地址窗口扩展(AWE)的区域分配。在NumberOfPages值表示数组的大小。参赛作品可以从多个地址窗口扩展(AWE)的地区。
NumberOfPages [in]
的物理内存和虚拟地址空间而建立的网页翻译,大小。
在VirtualAddresses数组指定的虚拟地址范围。
PageArray [in]
对一个值数组,它表明每个VirtualAddresses相应的页面应被视为指针。
一个0(零)指出,在VirtualAddresses相应的条目应映射,任何非零的值,它应该被映射。
如果该参数是NULL,那么每一个在VirtualAddresses数组地址映射。
在NumberOfPages值表示数组的大小。
返回值
如果函数成功,返回值为TRUE。
如果函数失败,返回值为FALSE,函数不映射或取消映射,局部或以其他方式。为了获得更多错误信息,调用GetLastError。
备注
物理页面可能会映射,但他们不是被释放。您必须调用FreeUserPhysicalPages释放物理页。
您可以指定任何的物理内存页的数量,但内存不能扩展之外的虚拟地址空间是由VirtualAlloc分配。任何现有地址的地图会自动覆盖新的翻译,和老翻译的映射。
您不能映射外AllocateUserPhysicalPages是在指定范围内的物理内存页。您可以映射多个地区同时进行,但不能重叠。
物理页可以位于任何物理地址,但不要对毗连的物理页的假设。
在多处理器环境,这个功能的硬件转换缓冲区保持连贯性。在这个函数的返回,在所有的处理器保证所有的线程看到正确的映射。
要编译的应用程序使用此函数,定义为0x0500或更高_WIN32_WINNT宏。有关详细信息,请参阅使用Windows头。
要求:
最低支持:client-Windows 2000专业版
最低支持server-Windows 2000服务器
HeaderWinbase.h(头文件:winuser.h)
LibraryKernel32.lib
DLLKernel32.dll
参见
地址窗口扩展
AllocateUserPhysicalPages
FreeUserPhysicalPages
MapUserPhysicalPages
内存管理功能
如果有任何问题和意见,请发送给微软(wsddocfb@microsoft.com)
生成日期:2009年8月27日
==英文原文==MapUserPhysicalPagesScatter Function
Maps previously allocated physical memory pages at a specified address in an Address Windowing Extensions (AWE) region.
64-bit Windows on Itanium-based systems: Due to the difference in page sizes, MapUserPhysicalPagesScatter is not supported for 32-bit applications.
Syntax
C++
BOOL WINAPI MapUserPhysicalPagesScatter(
__in PVOID *VirtualAddresses,
__in ULONG_PTR NumberOfPages,
__in PULONG_PTR PageArray
);
Parameters
VirtualAddresses [in]
A pointer to an array of starting addresses of the regions of memory to remap.
Each entry in VirtualAddresses must be within the address range that the VirtualAlloc function returns when the Address Windowing Extensions (AWE) region is allocated. The value in NumberOfPages indicates the size of the array. Entries can be from multiple Address Windowing Extensions (AWE) regions.
NumberOfPages [in]
The size of the physical memory and virtual address space for which to establish translations, in pages.
The array at VirtualAddresses specifies the virtual address range.
PageArray [in]
A pointer to an array of values that indicates how each corresponding page in VirtualAddresses should be treated.
A 0 (zero) indicates that the corresponding entry in VirtualAddresses should be unmapped, and any nonzero value that it has should be mapped.
If this parameter is NULL, then every address in the VirtualAddresses array is unmapped.
The value in NumberOfPages indicates the size of the array.
Return Value
If the function succeeds, the return value is TRUE.
If the function fails, the return value is FALSE, and the function does not map or unmap—partial or otherwise. To get extended error information, call GetLastError .
Remarks
The physical pages may be unmapped, but they are not freed. You must call FreeUserPhysicalPages to free the physical pages.
You can specify any number of physical memory pages, but the memory cannot extend outside the virtual address space that is allocated by VirtualAlloc . Any existing address maps are automatically overwritten with the new translations, and the old translations are unmapped.
You cannot map physical memory pages outside the range that is specified in AllocateUserPhysicalPages . You can map multiple regions simultaneously, but they cannot overlap.
Physical pages can be located at any physical address, but do not make assumptions about the contiguity of the physical pages.
In a multiprocessor environment, this function maintains hardware translation buffer coherence. On return from this function, all threads on all processors are guaranteed to see the correct mapping.
To compile an application that uses this function, define the _WIN32_WINNT macro as 0x0500 or later. For more information, see Using the Windows Headers .
Requirements
Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderWinbase.h (include Windows.h)
LibraryKernel32.lib
DLLKernel32.dll
See Also
Address Windowing Extensions
AllocateUserPhysicalPages
FreeUserPhysicalPages
MapUserPhysicalPages
Memory Management Functions
Send comments about this topic to Microsoft
Build date: 8/27/2009
==原始网址==http://msdn.microsoft.com/en-us/library/aa366755(VS.85).aspx\n
随便看

 

windows api函数参考手册包含2258条windows api函数文档,详细介绍nodejs、java、rust调用windows api的方法技巧,是学习windows api编程的入门中文文档。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 9:18:16