Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Your question makes no sense. Pointers, by definition, are a memory address to something - the size must depend upon the platform. How would you dereference a 128-bit pointer on a hardware platform supporting 64-bit addressing?!</p> <p>You can create 64 or 128-bit <em>values</em>, but a pointer is directly related to the memory addressing scheme of the underlying hardware.</p> <p>EDIT</p> <p>With your additional statement, I think I see what you're trying to do. Unfortunately, I doubt it's possible. If the kernel function you want to use takes a 64-bit pointer argument, it's highly likely to be a 64-bit function (unless you're developing for some unusual hardware). </p> <p>Even though it's <em>technically</em> possible to mix 64-bit instructions into a 32-bit executable, no compiler will actually let you do this. A 64-bit API call will use 64-bit code, 64-bit registers and a 64-bit stack - it would be extremely awkward for the compiler and operating system to manage arbitrary switching from a 32-bit environment to a 64-bit environment.</p> <p>You should look at finding the equivalent API for a 32-bit environment. Perhaps you could post the kernel function prototype (name+parameters) you want to use and someone could help you find a better solution.</p> <p>Just so there's no confusion, <code>__ptr64</code> in MSDN is <em>not</em> platform independent: </p> <blockquote> <p>On a 32-bit system, a pointer declared with __ptr64 is truncated to a 32-bit pointer.</p> </blockquote>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload