Silverlight 5 WinRT

  public sealed class PnpObject
  : __ComObject, IPnpObject
  public virtual String Id { get; }
  public virtual IReadOnlyDictionary`2<String, Object> Properties { get; }
  public virtual PnpObjectType Type { get; }
  static public PnpObjectCreateFromIdAsyncOperation CreateFromIdAsync(PnpObjectType type, String id, IEnumerable`1<String> requestedProperties);
  static public PnpObjectWatcher CreateWatcher(PnpObjectType type, IEnumerable`1<String> requestedProperties);
  static public PnpObjectWatcher CreateWatcher(PnpObjectType type, IEnumerable`1<String> requestedProperties, String aqsFilter);
  static public PnpObjectFindAllAsyncOperation FindAllAsync(PnpObjectType type, IEnumerable`1<String> requestedProperties);
  static public PnpObjectFindAllAsyncOperation FindAllAsync(PnpObjectType type, IEnumerable`1<String> requestedProperties, String aqsFilter);
  public virtual void Update(PnpObjectUpdate updateInfo);

  public sealed class PnpObjectCollection
  : __ComObject, IReadOnlyList`1<PnpObject>, IEnumerable`1<PnpObject>, IEnumerable

  public sealed class PnpObjectCreateFromIdAsyncOperation
  : __ComObject, IAsyncOperation`1<PnpObject>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<PnpObject> Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual PnpObject GetResults();
  public virtual void Start();

  public sealed class PnpObjectFindAllAsyncOperation
  : __ComObject, IAsyncOperation`1<PnpObjectCollection>, IAsyncInfo
  public virtual AsyncOperationCompletedHandler`1<PnpObjectCollection> Completed { get; set; }
  public virtual Exception ErrorCode { get; }
  public virtual UInt32 Id { get; }
  public virtual AsyncStatus Status { get; }
  public virtual void Cancel();
  public virtual void Close();
  public virtual PnpObjectCollection GetResults();
  public virtual void Start();

  public sealed enum PnpObjectType
  : IComparable, IFormattable, IConvertible
  { Unknown, DeviceInterface, DeviceContainer, Device, DeviceInterfaceClass }

  public sealed class PnpObjectUpdate
  : __ComObject, IPnpObjectUpdate
  public virtual String Id { get; }
  public virtual IReadOnlyDictionary`2<String, Object> Properties { get; }
  public virtual PnpObjectType Type { get; }

  public sealed class PnpObjectWatcher
  : __ComObject, IPnpObjectWatcher
  public virtual DeviceWatcherStatus Status { get; }
  public virtual event TypedEventHandler`2<PnpObjectWatcher, PnpObject> Added;
  public virtual event TypedEventHandler`2<PnpObjectWatcher, Object> EnumerationCompleted;
  public virtual event TypedEventHandler`2<PnpObjectWatcher, PnpObjectUpdate> Removed;
  public virtual event TypedEventHandler`2<PnpObjectWatcher, Object> Stopped;
  public virtual event TypedEventHandler`2<PnpObjectWatcher, PnpObjectUpdate> Updated;
  public virtual void Start();
  public virtual void Stop();