示例#1
0
 public static bool DeviceIoControl <TIn>(SafeFileHandle hDev, uint ioControlCode, TIn inVal) where TIn : struct
 {
     using (var ptrIn = SafeHGlobalHandle.Alloc(inVal))
     {
         uint bRet;
         return(Kernel32.DeviceIoControl(hDev, ioControlCode, (IntPtr)ptrIn, (uint)ptrIn.Size, IntPtr.Zero, 0, out bRet, IntPtr.Zero));
     }
 }
示例#2
0
 public static bool DeviceIoControl <TOut>(SafeFileHandle hDev, uint ioControlCode, out TOut outVal) where TOut : struct
 {
     using (var ptrOut = SafeHGlobalHandle.Alloc <TOut>())
     {
         uint bRet;
         var  ret = Kernel32.DeviceIoControl(hDev, ioControlCode, IntPtr.Zero, 0, (IntPtr)ptrOut, (uint)ptrOut.Size, out bRet, IntPtr.Zero);
         outVal = ptrOut.ToStructure <TOut>();
         return(ret);
     }
 }