public static extern bool DeviceIoControl(SafeFileHandle hDevice, DeviceIOControlCode dwIoControlCode, IntPtr InBuffer, int nInBufferSize, IntPtr OutBuffer, int nOutBufferSize, out int pBytesReturned, [In] ref System.Threading.NativeOverlapped lpOverlapped);
internal static unsafe extern bool DeviceIoControl(IntPtr hDevice, DeviceIOControlCode controlCode, byte *lpInBuffer, uint nInBufferSize, byte *lpOutBuffer, uint nOutBufferSize, out uint lpBytesReturned, IntPtr lpOverlapped);
public static extern bool DeviceIoControl(SafeFileHandle hDevice, DeviceIOControlCode dwIoControlCode, [MarshalAs(UnmanagedType.AsAny), In] object InBuffer, int nInBufferSize, [MarshalAs(UnmanagedType.AsAny), In, Out] object OutBuffer, int nOutBufferSize, out int pBytesReturned, [In] ref System.Threading.NativeOverlapped lpOverlapped);