Microsoft Patent Applications

HYPERVISOR DIRECT MEMORY ACCESS

Granted: March 21, 2019
Application Number: 20190087368
This disclosure generally relates to hypervisor memory virtualization. Techniques disclosed herein improve peripheral component interconnect express (PCI-e) device interoperability with a virtual machine. As an example, when a direct-memory access request is received from a PCI-e device but the target memory is currently unmapped, an indication may be provided to a memory paging processor so as to page-in the memory, such that the PCI-e device may continue to function normally. In some…

COMMUNICATION OF FINGERPRINT DATA

Granted: March 21, 2019
Application Number: 20190087636
Communication of fingerprint data is described herein. In one or more implementations, a fingerprint sensor is integrated within a device separate from a host device that identifies users utilizing fingerprint data. Although separate, the fingerprint-scanning device is communicably coupled to the host device. Unlike conventional fingerprint-based user identification techniques which involve communication of a stream of data comprising multiple fingerprint images, the techniques described…

MODEL-BASED RECOMMENDATION OF TRENDING SKILLS IN SOCIAL NETWORKS

Granted: March 21, 2019
Application Number: 20190087783
The disclosed embodiments provide a system for improving use of a social network. During operation, the system identifies skills that are trending within a social network based on usage features associated with usage of the skills in the social network. Next, the system matches one or more of the skills to member features for a member of the social network. The system then outputs a recommendation of the skill(s) to the member.

MODEL-BASED RECOMMENDATION OF CAREER PATH TRANSITIONS IN SOCIAL NETWORKS

Granted: March 21, 2019
Application Number: 20190087916
The disclosed embodiments provide a system for improving use of a social network. During operation, the system obtains job histories for members of the social network. Next, the system aggregates a set of job transitions in the job histories to obtain a set of job transition trends associated with the members. The system then matches a job transition trend in the set of job transition trends to member features for a member of the social network. Finally, the system outputs the job…

USER-HEIGHT-BASED RENDERING SYSTEM FOR AUGMENTED REALITY OBJECTS

Granted: March 21, 2019
Application Number: 20190088029
In various embodiments, methods and systems for rendering augmented reality objects based on user heights are provided. Height data of a user of an augmented reality device can be determined. The height data relates to a viewing perspective from an eye level of the user. Placement data for a first augmented reality object is generated based on the user height data. The first augmented reality object is rendered based on the user height data, and a second augmented reality object is…

MODIFYING A CONTENT DESCRIPTOR TO FACILITATE DELIVERY OF TOKEN-AUTHORIZED ENCRYPTED DATA

Granted: March 21, 2019
Application Number: 20190089528
Described herein are various technologies pertaining to delivery of token-authenticated encrypted data. Content descriptor(s) (e.g., playlist(s)) can be modified to facilitate exchange of a token for a decryption key for browser(s) that do not provide logic to manage a flow of the token.

POLICIES BASED ON CLASSIFICATION OF GROUPS, TEAMS, AND SITES

Granted: March 21, 2019
Application Number: 20190089743
Information technology use policies based on classification of groups, teams, and sites is provided. Example systems may enable information technology administrators to specify which policies may apply based on manual or automatic classification of groups, teams and sites. This may include the ability to specify associated membership, sharing, and access policies, data storage and sharing locations, retention policies for different types of content, and application of various information…

Trunk Routing using a Service Parameter

Granted: March 21, 2019
Application Number: 20190089750
Techniques for trunk routing using a service parameter are described. Generally, techniques described herein enable a service parameter for a communication session to be used to select a suitable communication trunk (e.g., a Session Initiation Protocol (SIP) trunk) for routing the communication session. In one example, a database of communication trunks is queried to identify a communication trunk that meets a service parameter for a communication session. In an additional or alternative…

INTERACTIVE NOTIFICATION PANELS IN A COMPUTING SYSTEM

Granted: March 21, 2019
Application Number: 20190089796
Described herein are systems and methods for providing interactive notification panels to a user. A bot apparatus receives a notification from an application program and transforms the notification into one or more interactive notification panels configured to receive user inputs and/or to provide an output to at least one user input. Based on at least one user input, the bot apparatus transmits data to the application program, which causes the application program to perform one or more…

PROXY SYSTEM FOR BOT CONNECTIVITY TO COMMUNICATION CHANNELS

Granted: March 21, 2019
Application Number: 20190089798
A proxy apparatus acts as an intermediary between one or more bot apparatuses and one or more communication channels. The proxy apparatus connects a communication channel to a bot apparatus for the exchange of messages. A user can interact with the bot apparatus through the communication channel. The proxy apparatus is configured to perform one or more operations or services. Example operations include, but are not limited to, registration, authentication and authorization, the…

SUB-BLOCK TRANSFORM CODING OF PREDICTION RESIDUALS

Granted: March 21, 2019
Application Number: 20190089978
Techniques and tools for sub-block transform coding are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching…

LOCATION RESTRICTION FOR MOBILE COMPUTING DEVICE COMMUNICATION

Granted: March 21, 2019
Application Number: 20190090285
A method for mobile device communication includes, on a mobile computing device, receiving a request to establish a communication with a specified remote device. One or more unique hardware addresses of one or more network devices in a local environment of the mobile computing device are detected. The detected unique hardware addresses are compared to a set of previously-approved unique hardware addresses associated with a set of familiar network devices detectable from an approved…

GAME CONTROLLER WITH REMOVABLE PADDLE ACCESSORY

Granted: March 21, 2019
Application Number: 20190083883
A game controller includes a grip, one or more finger-actuatable controls on the grip, and a rim located on the grip. The rim defines an aperture. The game controller further includes a paddle-actuatable sensor accessible through the aperture and a pivot spaced apart from the aperture. The pivot is configured to removably affix a selected paddle accessory to the game controller and to translate a touch applied to the selected paddle accessory outside of the aperture to an actuation of…

ELECTRONICALLY FUNCTIONAL YARN AND TEXTILE

Granted: March 21, 2019
Application Number: 20190085487
A yarn adaptable to incorporation into a textile comprises a core including one or more electrically conductive traces arranged on the core and distributed over at least a portion of the length of the yarn. The yarn also comprises an electrically contactable terminal arranged at a terminus of the one or more conductive traces and a winding wrapped around the core.

HYPERVISOR CLOCK FREQUENCY TECHNIQUES

Granted: March 21, 2019
Application Number: 20190086948
This disclosure generally relates to time and timer techniques that may be used to virtualize one or more virtual machines. In an example, a plurality of host machines may each have clocks that operate at pre-determined or known frequencies, such that it may be possible to easily migrate a virtual machine from one host machine to another host machine using an offset, thereby providing consistent time information to the virtual machine. In some examples, a scale factor or multiplier may…

USER-CENTRIC SOFT KEYBOARD PREDICTIVE TECHNOLOGIES

Granted: March 21, 2019
Application Number: 20190087084
An apparatus and method are disclosed for providing feedback and guidance to touch screen device users to improve text entry user experience and performance by generating input history data including character probabilities, word probabilities, and touch models. According to one embodiment, a method comprises receiving first input data, automatically learning user tendencies based on the first input data to generate input history data, receiving second input data, and generating…

HYPERVISOR TIMER TECHNIQUES

Granted: March 21, 2019
Application Number: 20190087215
This disclosure generally relates to time and timer techniques that may be used to virtualize one or more virtual machines. In an example, it may be possible to save and restore a timer of a virtual machine while preserving timer information associated with the timer (e.g., an expiration time, whether the most recent expiration has been signaled, and the enable bit, etc.). For example, a first mode may enable restoring a timer based on a previously-existing enable bit, thereby retaining…

NESTED HYPERVISOR MEMORY VIRTUALIZATION

Granted: March 21, 2019
Application Number: 20190087216
This disclosure generally relates to hypervisor memory virtualization. In an example, multiple page table stages may be used to provide a page table that may be used by a processor when processing a workload for a nested virtual machine. An intermediate (e.g., nested) hypervisor may request an additional page table stage from a parent hypervisor, which may be used to virtualize memory for one or more nested virtual machines managed by the intermediate hypervisor. Accordingly, a processor…

HYPERVISOR MEMORY CACHE INVALIDATION

Granted: March 21, 2019
Application Number: 20190087217
This disclosure generally relates to hypervisor memory virtualization. In an example, translation lookaside buffer (TLB) invalidation requests may be selectively delivered to processors to which they relate or may be ignored by processors to which they do not relate, so as to minimize the processing overhead that may be ordinarily associated with such TLB invalidation requests. In another example, a TLB invalidation request may be suspended in order to enable a hypervisor to finish…

DYNAMICALLY ALLOCATED THREAD-LOCAL STORAGE

Granted: March 21, 2019
Application Number: 20190087316
Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.