Smart Device Functions:
Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than kernel32, prefix the name with the module name and a period.
[StructLayout(LayoutKind.Explicit, Size = 8)]
The documentation for the Scatter/Gather functions states that the buffer addresses used must be page aligned (not just storage aligned). Indeed, passing a managed allocation, such as a byte array, causes error 87 (Invalid Parameter). This function is asynchronous only so an use the AsyncResult and Overlapped pattern established by the FileStream.
Tips & Tricks:
It is recommended that VirtualAlloc be used to allocate an unmanaged block of memory for use with this function. The array of file segments can be effeciently constructed without heap allocation using stackalloc. You will need to get the system's page size through a call to GetSystemInfo.
// Prepares the array of file segments given an IntPtr ABuffers (only uses ACount of the buffers so that these arrays can be pooled)
Alternative Managed API:
No managed API as of the 1.1 Framework.
The WriteFileGather API
3/16/2007 7:59:07 AM - email@example.com
TODO - a short description
3/16/2007 7:52:17 AM - anonymous
The VirtualAllocEx API
3/25/2021 7:44:14 PM - -220.127.116.11
The ReadFileScatter API
3/16/2007 7:57:43 AM - anonymous
Please edit this page!
Do you have...
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).