예제 #1
0
        private void OnDeviceArrival(DeviceBroadcastHeader dbh, IntPtr ptr)
        {
            if (dbh.DeviceType == 0x05)
            {
                DeviceBroadcastInterface dbi =
                    (DeviceBroadcastInterface)Marshal.PtrToStructure(ptr, typeof(DeviceBroadcastInterface));

                if (dbi.ClassGuid == _deviceClass && DeviceArrival != null)
                {
                    DeviceArrival(this, EventArgs.Empty);
                }
            }
        }
예제 #2
0
        private void OnDeviceRemoval(DeviceBroadcastHeader header, IntPtr ptr)
        {
            if (header.DeviceType == 0x06)
            {
                DeviceBroadcastHandle dbh = (DeviceBroadcastHandle)Marshal.PtrToStructure(ptr, typeof(DeviceBroadcastHandle));

                if (dbh.Handle != _deviceHandle.DangerousGetHandle())
                {
                    return;
                }

                CancelIo(_deviceHandle);
                UnregisterDeviceRemoval();

                if (DeviceRemoval != null)
                {
                    DeviceRemoval(this, EventArgs.Empty);
                }
            }
        }
예제 #3
0
    private void OnDeviceRemoval(DeviceBroadcastHeader header, IntPtr ptr)
    {
      if (header.DeviceType == 0x06)
      {
        DeviceBroadcastHandle dbh = (DeviceBroadcastHandle)Marshal.PtrToStructure(ptr, typeof (DeviceBroadcastHandle));

        if (dbh.Handle != _deviceHandle.DangerousGetHandle())
        {
          return;
        }

        CancelIo(_deviceHandle);
        UnregisterDeviceRemoval();

        if (DeviceRemoval != null)
        {
          DeviceRemoval(this, EventArgs.Empty);
        }
      }
    }
예제 #4
0
    private void OnDeviceArrival(DeviceBroadcastHeader dbh, IntPtr ptr)
    {
      if (dbh.DeviceType == 0x05)
      {
        DeviceBroadcastInterface dbi =
          (DeviceBroadcastInterface)Marshal.PtrToStructure(ptr, typeof (DeviceBroadcastInterface));

        if (dbi.ClassGuid == _deviceClass && DeviceArrival != null)
        {
          DeviceArrival(this, EventArgs.Empty);
        }
      }
    }
예제 #5
0
    private void OnDeviceRemoval(DeviceBroadcastHeader header, IntPtr ptr)
    {
      if (header.DeviceType == 0x06)
      {
        DeviceBroadcastHandle dbh = (DeviceBroadcastHandle) Marshal.PtrToStructure(ptr, typeof (DeviceBroadcastHandle));

        if (dbh.Handle != _deviceHandle)
          return;

        CancelIo(_deviceHandle);
        UnregisterDeviceRemoval();

        if (DeviceRemoval != null)
          DeviceRemoval();
      }
    }