Esempio n. 1
0
        public bool DeviceIOControl(Kernel32.IOControlCode ioControlCode, object inBuffer)
        {
            if (_device == null)
            {
                return(false);
            }


            bool b = Kernel32.DeviceIoControl(_device, ioControlCode, inBuffer, inBuffer == null ? 0 : (uint)Marshal.SizeOf(inBuffer), null, 0, out uint _, IntPtr.Zero);

            return(b);
        }
Esempio n. 2
0
        public bool DeviceIOControl <T>(Kernel32.IOControlCode ioControlCode, object inBuffer, ref T outBuffer)
        {
            if (_device == null)
            {
                return(false);
            }


            object boxedOutBuffer = outBuffer;
            bool   b = Kernel32.DeviceIoControl(_device,
                                                ioControlCode,
                                                inBuffer,
                                                inBuffer == null ? 0 : (uint)Marshal.SizeOf(inBuffer),
                                                boxedOutBuffer,
                                                (uint)Marshal.SizeOf(boxedOutBuffer),
                                                out uint _,
                                                IntPtr.Zero);

            outBuffer = (T)boxedOutBuffer;
            return(b);
        }