Patent ID: 7590762

Claim:
On a device, a computer-readable storage medium having computer-executable instructions thereon for automatically classifying networks to which the device is enabled to connect, comprising: a store, a network location awareness service (NLA), and a network profile manager in communication with the store and the NLA, wherein: the store includes: one or more network profiles and one or more network signatures, wherein each of the one or more network signatures corresponds to a respective network profile and the one or more network profiles and the one or more network signatures are managed by the network profile manager; and the network profile manager comprises a single COM object enabled to: register with the NLA to receive notifications from the NLA when a status of a network connection to the device changes; provide a set of notifications to a client, the set of notifications including separate notifications for: a connection of a network corresponding to an existing network profile, a disconnection of the network corresponding to the existing network profile, an addition of a newly-added network profile, a deletion of the existing network profile, and a change to a property of the existing network profile; and expose a set of application program interfaces (APIs) for managing network profiles, the set of APIs including separate APIs for: enumerating network profiles corresponding to the networks that are connected to the device; enumerating network profiles corresponding to networks that are disconnected from the device; enumerating all network profiles; enumerating network signatures for a specified network profile; enumerating network interfaces corresponding to the specified network profile; providing a connection status corresponding to the specified network profile, the status being one of connected or disconnected; providing a connection status corresponding to a specified network signature, the status being one of connected or disconnected; providing an authentication status corresponding to the specified network profile, the status being one of authenticated or not authenticated; managing a friendly name for the specified network profile, the managing including getting the friendly name and setting the friendly name; managing an icon for the specified network profile, the managing including getting the icon and setting the icon; managing a description for the specified network profile, the managing including getting the description and setting the description; obtaining a date corresponding to a creation date of the specified network profile; and obtaining a date corresponding to a date of a connection, to the device, of a network corresponding to the specified network profile.