Windows on xbox 360




















Recently a friend gave me a wired Xbox controller to use on my PC, I have a desktop HP Compaq elite sff running Windows 10 home pro,,, The problem is the controller isn't working like it should,,, I don't know how or where to check for the control drivers or where to go to set up the control functions for it,,, As you guessed I don't know very much about computers and I'm not great at navigating or accessing the places i want to go as far as programs and such , I tried the virtual asst but didn't get very far with it I guess I must be stupid,, that's ok i own it if i am,, any help would be greatly appreciated Sincerely Coy Osbon.

This thread is locked. You can follow the question or vote as helpful, but you cannot reply to this thread. Threats include any threat of suicide, violence, or harm to another. Any content of an adult theme or inappropriate to a community web site. Any image, link, or discussion of nudity. Any behavior that is insulting, rude, vulgar, desecrating, or showing disrespect. Any behavior that appears to violate End user license agreements, including providing product keys or links to pirated software.

Unsolicited bulk mail or bulk advertising. Any link to or advocacy of virus, spyware, malware, or phishing sites. Any other inappropriate content or behavior as defined by the Terms of Use or Code of Conduct. Scroll down to Media Streaming and click on Choose media streaming options. The option may be located under All Networks. Go ahead and click on Turn on media streaming. Here you can then give your media library a name and choose what to share.

Click OK and then click Save changes on the Advanced sharing settings page. This will get you back to the HomeGroup screen. Here you want to check the Stream my pictures, music, and videos to all devices on my home network.

First, on your Xbox , you need to get the 8-digit media center setup key. Follow the on-screen instructions until you get to the media center key. It should look something like this:. Then click on Tasks and Add Extender. After ownership of the memory is acquired, values are typically read from or written to that memory, and it is very important that these reads and writes execute after acquiring ownership.

A read-acquire barrier guarantees this. When ownership of some memory is released, either by releasing a lock or by pushing an item on to a shared linked list, there is always a write involved which notifies other threads that the memory is now available to them.

While your code had ownership of the memory, it probably read from or wrote to it, and it is very important that these reads and writes execute before releasing ownership. A write-release barrier guarantees this. It is simplest to think of read-acquire and write-release barriers as single operations.

However, they sometimes have to be constructed from two parts: a read or write and a barrier that does not allow reads or writes to move across it. In this case, the placement of the barrier is critical. For a read-acquire barrier, the read of the flag comes first, then the barrier, and then the reads and writes of the shared data. For a write-release barrier the reads and writes of the shared data come first, then the barrier, and then the write of the flag.

The only difference between a read-acquire and a write-release is the location of the memory barrier. A read-acquire has the barrier after the lock operation, and a write-release has the barrier before. In both cases the barrier is in-between the references to the locked memory and the references to the lock. To understand why barriers are needed both when acquiring and when releasing data, it is best and most accurate to think of these barriers as guaranteeing synchronization with shared memory, not with other processors.

If one processor uses a write-release to release a data structure to shared memory, and another processor uses a read-acquire to gain access to that data structure from shared memory, the code will then work properly. If either processor doesn't use the appropriate barrier, the data sharing may fail. One of the advantages of using the synchronization primitives provided by the operating system is that all of them include the appropriate memory barriers.

A compiler's job is to aggressively optimize your code in order to improve performance. This includes rearranging instructions wherever it is helpful and wherever it will not change behavior. Therefore, you need to tell the compiler when it is not allowed to reorder reads and writes.

CPU reordering is more subtle than compiler reordering. You can't ever see it happen directly, you just see inexplicable bugs. In order to prevent CPU reordering of reads and writes you need to use memory barrier instructions, on some processors.

The all-purpose name for a memory barrier instruction, on Xbox and on Windows, is MemoryBarrier. This macro is implemented appropriately for each platform. The lwsync instruction is a memory barrier on Xbox that synchronizes one processor core with the L2 cache. It guarantees that all writes before lwsync make it to the L2 cache before any writes that follow.

It also guarantees that any reads that follow lwsync don't get older data from L2 than previous reads. The one type of reordering that it does not prevent is a read moving ahead of a write to a different address. Thus, lwsync enforces memory ordering that matches the default memory ordering on x86 and x64 processors. To get full memory ordering requires the more expensive sync instruction also known as heavyweight sync , but in most cases, this is not required.

The memory reordering options on Xbox are shown in the following table. PowerPC also has the synchronization instructions isync and eieio which is used to control reordering to caching-inhibited memory.

These synchronization instructions should not be needed for normal synchronization purposes. On Windows, MemoryBarrier is defined in Winnt. The memory barrier instruction serves as a full barrier, preventing all reordering of reads and writes across the barrier.

Thus, MemoryBarrier on Windows gives a stronger reordering guarantee than it does on Xbox If you read a pointer and then use that pointer to load other data, the CPU guarantees that the reads off of the pointer are not older than the read of the pointer. If your lock flag is a pointer and if all reads of shared data are off of the pointer, the MemoryBarrier can be omitted, for a modest performance savings.

The MemoryBarrier instruction only prevents reordering of reads and writes to cacheable memory. Most developers don't need synchronization of non-cacheable memory. That is beyond the scope of this article.

Sometimes the read or write that acquires or releases a resource is done using one of the InterlockedXxx functions. On Windows, this simplifies things; because on Windows, the InterlockedXxx functions are all full-memory barriers.

They effectively have a CPU memory barrier both before and after them, which means that they are a full read-acquire or write-release barrier all by themselves. They prevent compiler reordering of reads and writes but not CPU reordering. For convenience and for easier readability, there are Acquire and Release versions of many of the InterlockedXxx functions.

These come with a built-in memory barrier. It is recommended that you use the Acquire and Release versions of the InterlockedXxx functions most of which are available on Windows as well, with no performance penalty to make your intent more obvious and to make it easier to get the memory barrier instructions in the correct place.

Any use of InterlockedXxx on Xbox without a memory barrier should be examined very carefully, because it is often a bug. This sample demonstrates how one thread can pass tasks or other data to another thread using the Acquire and Release versions of the InterlockedXxxSList functions. The InterlockedXxxSList functions are a family of functions for maintaining a shared singly linked list without a lock. Note that Acquire and Release variants of these functions are not available on Windows, but the regular versions of these functions are a full memory barrier on Windows.

However, the guarantees of the standard are not sufficient for using volatile for multi-threading. This means that the compiler will not rearrange any reads and writes past them, and on Windows it will ensure that the CPU does not do so either. Also, on Xbox , the compiler does not insert any instructions to prevent the CPU from reordering reads and writes.

A pipe is a construct that lets one or more threads write data that is then read by other threads. A lockless version of a pipe can be an elegant and efficient way to pass work from thread to thread. The producer thread can write data to the pipe for the consumer thread to process at a later date, without ever blocking. If the pipe fills up, writes fail, and the producer thread will have to try again later, but this would only happen if the producer thread is ahead.

If the pipe empties, reads fail, and the consumer thread will have to try again later, but this would only happen if there is no work for the consumer thread to do. If the two threads are well-balanced, and the pipe is big enough, the pipe lets them smoothly pass data along with no delays or blocks. The performance of synchronization instructions and functions on Xbox will vary depending on what other code is running.



0コメント

  • 1000 / 1000