This is pointer, and all pointers gets the size of
IntPtr
which is 32-bit on 32-bit systems and and 64-bits on 64-bit systems, all other .NET types have the same size regardless of the instruction-set architecture of target assembly. Also, it's important that the last parameter is of
out
type.
So, the function prototype will be declared as
Private Shared Function SCardEstablishContext(scope As System.UInt32, reserved1 As System.IntPtr, reserved2 As System.IntPtr, ByRef context As System.IntPtr) As Long
—SA