What is the resulting complication of scheduling a RTC appointment in VistA rather than VS GUI

Frequently Asked QuestionsUse this document to view Frequently Asked Questions (FAQs) and their respective answers. This document should be navigated using the following table of contents, by question topic. Contents TOC \o "1-3" \h \z \u Frequently Asked Questions PAGEREF _Toc455645726 \h 1Delivering Training PAGEREF _Toc455645727 \h 2Schedulers PAGEREF _Toc455645728 \h 2Test Environment PAGEREF _Toc455645729 \h 5More Information PAGEREF _Toc455645730 \h 6Hands-On Demos PAGEREF _Toc455645731 \h 7Reports PAGEREF _Toc455645732 \h 7VSE System Questions PAGEREF _Toc455645733 \h 8Data Set-Up PAGEREF _Toc455645734 \h 8CPRS PAGEREF _Toc455645735 \h 13Requests PAGEREF _Toc455645736 \h 15VistA Interactions PAGEREF _Toc455645737 \h 20Appointments PAGEREF _Toc455645738 \h 24Clinic Set up PAGEREF _Toc455645739 \h 35System Functionality PAGEREF _Toc455645740 \h 36VAR Compatibility PAGEREF _Toc455645741 \h 38Delivering TrainingSchedulersKeywordsTimeframeTrainingRoll outGo-liveTest EnvironmentQuestionAnswerIn what time frame do the schedulers need to be trained? Is the go-live date the same date for every facility or will it be staggered?Scheduler and Supervisor training should start around June 6 for the larger training effort (that which is outside of the initial 10 schedulers taught during the site visit) for these early visits. For sites whose site visit start on or after 6/6, training should start the week following the site visit. The target is to complete training in an 11-week timeframe. If this is not achievable, the site POC should be in touch with Dawn Smith and the ACAP Office during their weekly calls. Each site is also to be completing a training implementation plan that will help the sites determine what is realistically feasible for them. Guidance for this is provided in the VSE MC Implementation Plan document that Dawn provides to all of the sites during their regular meetings (may also be available from the POCs’ SharePoint site). For roll out, this is a staggered roll out that aligns with the training schedule, roughly. Currently, OI&T is only rolling out for the test environment based on some final enhancements that are being made to the software. Starting in early June, OI&T will begin the production roll out (at which time they hope to be able to push it to the work stations, rather than local OI&T installing manually). However, for each site, users should only be given access once they satisfactorily complete the Hands-on Demonstration (3 or better across the skills).Can management reports only be saved as PDFs?Yes, but audit activity reports may be exported to Excel. Will data definitions be available for some of the management reports (adjusted demand, for example)?These definitions are not currently readily available, but we can request this information be added to the User Guide or placed in the Scheduling Staff resources in some other way. What is the go-live date? Will the rollout be done in phases or will all sites go live at the same time?This is a rolling deployment. They are currently addressing some last minute defects, but the expected rollout for the earliest sites is in early June. To say updated, the site POC should attend the deployment calls. For the VSE test environment, will the data need to be refreshed/cleared out after each class?Yes, assuming they use up the data they have configured. Do all End Users need to have training completed before sites go live?Please refer to your site MC POC. The ACAP office would like 100% completion before going live but understand this could be a hard goal to meet. Sites should have a majority of the training completed. Currently sites are being instructed to keep VSE in the Test Environment until additional patches are released that will correct known defects.Where can I find Scheduling Policies?National Scheduling Policies/Memorandums can be found on the Scheduling Community Practice Site and at your facility. Directives and Handbooks can also be found on the VGA forms and publications page via the following link: 20, 2016Entered into VA Pulse through this pointSites having are trouble with query in the test environment. Will this happen in production as well?It should not. By reducing the query options, the slowness should be eliminated.Important - sites who did not install the GUI to the desktop and instead placed them on their regional/local servers are experiencing performance issues. The software is not recommended or built to be pushed out.The systems team and HP are looking at this.Should this be triggering a “white screen of death” or does that suggest an issue with the test environment?When the “white screen of death” occurred, the recall that was up at the time became locked and you cannot access the appt. What should they do in this circumstance??? Will check into this If pre-registration flags are not showing, is that an issue with the test environment or how the system should be behaving?They should be working – it might be a result of the test environment but will check in our systems team and get back with you. Given the updated info on requiring TMS admins to mark students as having completed the courses, how long after an admin marks the student as complete is the eval available?Will the student receive a notification to complete the evaluation?If the students complete the post test on day 4 and the sheet forwarded to the TMS admin, we have requested that the completions be marked the next working day (following the final training day). It is up to the site to work out the communications and the process. Query is consistently causing problems within the Test environment. Is this a test issue or something being put in wrong at the sites?By reducing the query options, the slowness was supposed to be eliminated. Important - sites who did not install the GUI per desktop and placed them on their regional/local servers are experiencing performance issues. It was not recommended or built to be pushed outRecall would not work in the Test environment and the POC said they do not have class one software. They are still class three and RECALL won’t work.? We also could not use EWL. Is this related to that software issue?Yes, this very likely. I would ask that they contact their regional OI&T or if needed, Yoojin Lee (OI&T national implementation manager). VA OI&T will not support class 3 softwareIn the Test environment, pre- registration flags are not displaying. We understood that all flags that display in VistA will display in VSE. Is that correct?They should be working – it might be a result of the test environment.June 21, 2016Entered into VA Pulse through this pointTest EnvironmentKeywordsQuerySimulations QuestionAnswerSuper Users are continuing to have issues with the query function in the test environment. On my site visits, it’s worked in only one or two cases. With scenarios 5 and 7 (where users are directed to use the query tool to see recalls and EWLs for clinic C), users consistently either get a message saying there are no results or the system freezes. I’ve been directing them to use the filters in the consolidated request list instead, but I thought to give you a quick heads up about the issue.Have them use all dates – in the scenario the wait time will calculate to -365. The only way to find anything with a negative wait time is to use all dates.Does TEST system look the same as simulations? Does it blink between screens the same way?No, the simulation provides the ability to view/practice in a safe environment and become familiar with VSE program; however, there are some features of the simulations that do not behave the exact same way as TEST/VSE application.When will the “glitches” all be fixed and final product available?The program will continue to evolve throughout its lifetime. Just like any software program there will be enhancements and patches. The initial go-live date is set for the first week of July barring any issues.June 24, 2016Entered into VA Pulse through this pointMore InformationKeywordsResultsChecklistQuestionAnswerIs there somewhere that sites can go to get the feedback that the pilot sites or other sites who are live on the system?The open forum call line:Adobe Connect Link: : 1-800-767-1750 Access Code 32988How does the system address appointment status for those who are color-blind?The application was approved by 508 team.Is there one place to get all of the documentation for VSE, besides Pulse?VistA Documentation Library there business rule guidance on cancelling requests in VSE?The Business Rules are being set by the ACAP Office now.June 24, 2016Entered into VA Pulse through this pointHave any of the sites we visited in May actually started using the production version of VSE?No, based on varied corrections being made to the system, no sites are live yet. July 15, 2016Entered into VA Pulse through this pointHands-On DemosReportsKeywordsResultsChecklistQuestionAnswerWhere will we report our results of the hands on demonstrations?Sites need to prepare a spreadsheet that contains the Scheduler name, date class training was completed, and a check box reflecting the Scheduler passed the hands on demonstration. The document will be uploaded to a SharePoint. The ACAP office will release the name/location of the SharePoint soon.When is the hands on checklist completed with the End User?About two weeks after attending class. The End User is given time to practice on their own. ACAP is recommending 4 hours maximum however times may vary depending on the knowledge of each user. June 20, 2016Entered into VA Pulse through this pointGrading Scale/Scoring Rules for Hands-On-Demonstration Checklist; what is the determination for pass/fail?Users should perform at a 3 or higher across skills prior to being given access to VSE in production.June 24, 2016Entered into VA Pulse through this pointVSE System QuestionsData Set-UpKeywordsClinicData Set-UpProhibited ClinicRestricted AccessSpecial needsReportsQuestionAnswerOn the telehealth clinic…is this 3 different clinics for telehealth?The scenario is the ability to view a clinic in the provider group so they suggested that the provider from Clinic A, B or C also be the provider for a telehealth clinic.Will VSE link with the new telehealth system (Telehealth Scheduling System)?Not at this time. Will VSE at some point allow schedulers to run reports such as EWL, SH, EARs?At the current time, VSE will allow for the request list items to be printed out in a report like fashion. It does not have the functionality to run the EAR at this time; however, these reports can continue to be run outside of VSE. Can requests be printed? For example, in the call center when a patient experiencing breathing difficulty calls, needing one of the nurses to triage it, how do they get that request to them?Facilities should follow their established process as how to handle urgent/emergent issues. This will be no different with VSE except that the scheduler can enter an appointment request that is followed up on by the staff in the clinic. If approval is given, the scheduler can make the appointment directly. Will the “enter” key work to move through VSE when it is live?Enter does not register text entries in a field in the live system. Enter does work to select a radio button, checkbox, or button. This is a keyboard alternative to clicking.Clinic D Dental states it is prohibited. Does this mean it is restricted and if so, who should have access?Yes it should be restricted. The students in the class should have access so you can restrict users that will be trained laterCan I choose multiple clinics or only groups that are built?There are two ways to view multiple clinics. The first is by viewing a clinic group built within VSE. The second way is to view by Provider. Please note that the Provider must be listed as a Default Provider for that clinic in VistA. If a patient is requesting an appointment in multiple clinics, all in one day, will we be able to schedule those?Yes, you can schedule in multiple clinics by selecting each request in turn and scheduling. If you look up the patient, all pending requests for the patient display in the consolidated request list and appointments display in the Pending Appointments section. As you select a request, the schedule for the requested clinic or specialty displays. When you schedule the appointment, the focus will move to the next request for the patient and you can schedule subsequent appointments, while seeing the already booked appointments.Who is responsible for creating the groups? And does such information need updating upon every new clinic added?VSE only recognizes clinic groups created within the software not VistA. Facilities need to develop a written process for managing the clinic groups. This will require maintenance as clinics are activated and inactivated. In the ER, a whiteboard called EDIS shows a list of veterans waiting to be seen. Will the EDIS board update when an appointment is scheduled within VSE?If this currently occurs, it will continue to update. If there was no communication previously, this would remain the same. There were no specific adaptions for EDIS. Will providers also have access to VSE so they can view their clinics/patients?No, not currently, unless they have the appropriate keys and attend training. A view-only level access is in the works. If VSE is not used for updating demographics, is there a way the system can have sections greyed out to indicate to users that these sections are unavailable?You may only update demographic information that has not been previously entered. Any existing information is greyed out, which means it cannot be updated in VSE. Other updates to demographics should be through VistA or VetLink. The ability to update in VSE is a future enhancement on the listuy. Do staff members get an alert if a patient is Non-Veteran or Collateral?The staff will not receive a pop up alert. There are several ways to see the information. When making a selection from the Search Box, the eligibility is shown in the dropdown search selection box. After a patient is selected, the Demographics area will display the Patient Type. When creating an appointment request, the Patient’s Eligibility Information box displays showing the Primary Eligibility Code. Are all staff going to have access to entering Special Needs Notifications? If so, is there anything providing general script? What is the character limit?Yes, all staff will be able to enter special needs and preferences, unless local policy restricts it use to certain roles. The ACAP office is working on some standard language. The max character length is 120 characters. Will patients be able to add these preferences once they can request appointments electronically – VAR? (Special preferences when making an appointment, service dog, escort, etc.)There is a section where the Veteran can indicate the best times for the VA to call and a 100-character message that can be sent to the scheduler. Special needs and preferences will be updated by the scheduler when talking with the Veteran to make the appointment for future reference, as is currently done with traditional appointment scheduling. Will “Special Instructions” display the special instructions without having to click on the banner in the live version? (In the test account it only says “Special Instructions.”)No, the user will need to select the Special Instructions banner for additional information. Once the special needs data has been entered while making "one" appointment, will that special needs data save for all future?Yes, special needs data stays with the patient, so it should only be entered for those needs.Is VSE used for registering patients or are we supposed to use VistA? No, VistA will be used for registering patients.Can you have a default clinic that populates automatically?No.Once you filter a request list, can you save those preferences as a default?You will need to filter or query to limit what is displayed. The purpose of this is to ensure items are not overlooked. Can you use the space bar + enter to pull up the last clinic or patient?No.Are the fields case sensitive?The Access and Verify code fields are case sensitive. None of the other fields are. Can you use the VHIC card to bring up a patient?No, VSE uses manual entry only.Will VSE provide an alert if the veteran needs to have their insurance card scanned?No, staff will need to continue to use ICB.When searching for a clinic, can the search be done using the clinic abbreviation or the clinic name? You can only use the exact clinic name when searching for a clinic. You must enter at minimum the first 6 characters of the clinic name.How long does it take VSE to time out?15 minutes.Do the graphs auto-populate or do users have a choice of graph?The graphs auto-populate. June 20, 2016Entered into VA Pulse through this pointIs it correct that each site will install the software on a rolling basis per the OIT information in the schedule, but individuals will be turned on per local SOP thereafter based on completion of the demo checklist?There will be a recommended patch installation window and then GUI installation dates. However, access to the system is per local SOP as you outlined.Super Users & Schedulers need to complete the two courses (documented as complete in TMS) and demonstrate a level of proficiency through the demo checklist. At that point, they will be recommended for access. This should be outlined per SOP. This is critical. With regard to the grouping of clinics will - each staff member be able to customize it to their needs for the clinics they are responsible for ?At this time there is no ad hoc option for clinic groups - all groups need to be built with guidance from your oversight group to include clerks and/or provider input.June 21, 2016Entered into VA Pulse through this pointCurrently clinic name changes cause the recall system to have glitches. Will VSE have these same issues?VSE receives its information from Vista. The information in the recall system is sent to VSE. If there are glitches in the recall system and the clinic names are not correct it will pass the incorrect clinic names into VSE. The Recall documentation lead the users to believe that the NAMES of the clinic must match but it really is not looking at the NAME but the IEN number of the clinic.June 24, 2016Entered into VA Pulse through this pointWhen coordinating with a VAMC that is not yet on VSE, what is the process, e.g. this location is live and an associated location they also book for is not live?The other site would continue to schedule within VistA and this would not yield an issue. There should be no issue with a Veteran who goes in between sites with and without VSE since VSE is only an overlay on VistA.July 6, 2016Entered into VA Pulse through this pointCPRSKeywordsCPRSConsultGUIQuestionAnswerOnce a request is in VSE, does the request link to CPRS as a text order?The appointment request does not link to CPRS as a text order.?A national service request (NSR) was entered to drop the RTC order date in CPRS into VistA scheduling and is pending. This option is not available in VSE at this time but hopefully, will be added as a future enhancement down the road.Will consults link to VSE? Will a link pop up in VSE stating the consult has linked to the appointment?Yes the consult will link in VSE when the scheduler creates an appointment in a clinic that has the same Stop Code as one that is associated with that consult. The appointment will show CON- next to the date/time in the Pending Appointments section.What is the date range for pending appointments?One year (365 days) in the past and one year in the future beginning with today’s date.When the provider enters an RTC order in CPRS, will it automatically generate an appointment request in VSE?CID to Clinic Orders do not populate from CPRS to VSE. The scheduler should create the request within VSE based on the RTC.Do consults state whether the condition is service related?Each time an appointment is scheduled, the patient eligibility is displayed.?You may also view this in the patient demographics section.?The SC prompt will automatically be checked for those Veterans SC 50% or greater. For veterans less than 50% service connected the scheduler will have to use their normal process for determining if the appointment is related to that service connection.Will the same patient still populate in both VSE and CPRS when selected as they do now?No, the shortcut will not force the patient to display in VSE.How long until GUI will time out?The time out is the same as CPRS. The time out is 15 minutes.Will we be able to change the time-out amount per our MC preference? (in regards to the GUI closing out due to inactivity)It is set up on the VistA set up. I heard you can't use the VHIC cards with this GUI. Is that true?Since the patient has no direct interaction with this system, that is true.Does the same patient being viewed in the GUI automatically show in CPRS?No. Will Provider RTC orders from CPRS show in the Request List (RM Grid)?No, only Consults, Procedures, Appointment Requests, EWL Requests, and Recalls Requests.Will the appointment connect to the Consult from VSE?Yes, scheduling the appointment will update the status of the Consult in CPRS to “scheduled.”Will users be able to see the status of a Consult in VSE?The Consult status is not viewable in VSE. The scheduler can use the query tool to produce a list of Consults for a service, bout you will need to work out a local process to determine when the appointment should be scheduled and how the clerk will view the comments for these consults. June 20, 2016Entered into VA Pulse through this pointIf a provider enters return to clinic order in CPRS does it display in VSE?No, they do not.Since recording contacts in VSE do not populate in CPRS, what are the procedures for recording contacts now?Use existing process until this functionality is updated.Will Disposition orders entered in CPRS display in VSE?No.Will pre-appointment Provider documentation in CPRS "Check out" the patient in VSE as it does in Vista?YES if the status of an appointment changes in VistA it will reflect the same in VSE.June 24, 2016Entered into VA Pulse through this pointRequestsKeywordsEWLVCLRecallMulti-bookQuestionAnswerWill schedulers be able to create new entries for EWL, VCL & Recall from within VSE?Schedulers will have the ability to manage the EWL, Recall, Consults and future appointment requests through the VSE.?One of the nice features of VSE is that all of these future call request lists are consolidated into one which can be quickly sorted by clinic, provider, service, priority, etc.For the facilities that have veterans already in Recall in VistA, will those requests be automatically pulled in? If they change the disposition type for the recall reminders via patch, will it update in VSE?Yes, they will automatically be pulled in and included in the request list.Is there a report that shows open appointment requests?The Query Tool can be used to run a report on open appointment requests. When would you choose patient versus recall or appointment when entering the Veteran’s record?Request Types:Appointment: Choose this type to create an appointment request. Recall: Choose this type to create a Recall Reminder request.Patient: Choose this type when wanting to view appointment information. How can you check availability in another clinic?If you do not select a request, you can use the search next to the Schedules to look up a provider, a clinic or a clinic group of your choosing. Selecting Clear next to the patient search field will allow you to deselect any chosen requests and clear any current search criteria. This is essentially a reset allowing you to look at just the information of your choosing by entering search information next to the Schedules. How does multi-book affect the CID date text order? Will this hinder us somehow?Multiple appointment booking calculates from the CID established by the provider and the interval. For subsequent MRTC appointments, the system will calculate wait time from the provider interval. The patient may request an alternate date which will be honored and entered. The interval time period based on the initial appointment is what is involved in the calculation. This should not be problematic because the scheduler has within 30 days of the CID to work with.With Recall Reminder going away, will this be readjusted?The functionality will still be there, but it will be renamed so if a Veteran chooses to ask for a reminder call rather than making an appointment in that moment, we can still track that request.In VSE, when the appointment is cancelled, the information will return to the “Requested” status. Does the number of “Requested” items inflate or skew any reports?The system will correctly report the number of requests. It is important that schedulers are mindful of correctly reflecting who cancelled an appointment and cancelling both the appointment and the request is no longer needed. What is the purpose of creating an appointment request before the appointment is actually scheduled? Putting a request in place sets the patient’s spot in the queue. It lets us consolidate any waiting lists into our one consolidated request list. It also allows you to place a patient on the EWL if necessary. Further, if an appointment is cancelled, it ensures that the need for the appointment is still being tracked and worked.Can two people view the same patient at the same time?Multiple staff can view the same patient in VSE with no error or alert messages. If multiple staff attempt to open the same appointment request an alert is presented stating another user has the request locked. Multiple staff can open and act on different appointment requests. Will VAR be entered through kiosks?VAR is designed to be entered via the Veteran’s device (cell phone or PC). When contacting the Veteran, the scheduler could confirm the Veteran’s intent and disposition of the other requests. Creating appointment request for a service/specialty and multiple visits slide: MSAs don’t decide whether or not something is “service connected” so how can they check the box?You should continue to follow your local policy on service connection. If, for you, this means that they should never check the box, then you can add that to your speaking points. Service specialty pulls the information based on the VistA clinic set up.Does the request have to be reviewed by the doctor before it can be scheduled?This would likely be a matter of local policy.Is the Comment Section used to enter remarks for Nursing and Providers to view?Remarks entered in the Comment Section of the Appointment Request are only reflected in the Appointment Request. When scheduling the appointment from the Appointment Request the scheduler should enter remarks in the Notes section. The remarks entered in the Notes section will be reflected in the appointment for all staff to view.Is it possible to have the Remarks section as a required field?None of the free text entry fields (the Comment, Remark, and Notes fields) are currently required. You can make this a part of your local process though and teach to it. Will the multi-book option still require the multi-book key?No.What happens when you select the next button instead of the book button?For a multi-book request, this takes you to the following requested date in the series. For instance, if you are scheduling weekly PT appointments, and you have scheduled the first appointment and for some reason the patient wants schedule the third appointment next, you would select Next to jump over the second request. What is the reason for entering the provider’s name in the Appointment Request?To give the scheduler additional information pertaining to the appointment. In some instances the scheduler has to search through notes in CPRS to find the provider who requested the appointment.How do you cancel/remove an EWL Request?To cancel or remove an EWL Request right click on the EWL Request located in the Request Grid. Choose EWL Disposition and select the appropriate Disposition type. Will the Recall Reminders currently entered in Vista transfer to VSE or will they need to be re-entered?VSE will pull in all current Recall Reminders from VistA. Re-entering the Recall Reminder request is not needed.When you cancel an appointment, does the appointment request appear back in the consolidated list?Yes, you can see this in action in the simulation.Is the automatic Recall removal part of the Recall system or a function of VSE?Recall removals are done through a scheduled task manager nightly job that is set up by site IT departments. Confirm that your site has the recall task job scheduled, and, if it does, also confirm if it runs nightly. June 20, 2016Entered into VA Pulse through this pointIn the mental health here they have to check each provider’s Outlook calendar to look for availability. The Outlook scheduler then communicates with Vista and schedules the appointment for the slot chosen. How will this translate in VSE?If the “Outlook scheduler” has scheduling keys in VistA, they can be set as a scheduler within VSE and complete the same actions.June 21, 2016Entered into VA Pulse through this pointIn the Consolidated Request List one of the columns headers reads “RR No Date” what does the “No Date” mean?The date is the date upon which a request enters the system, be that from another system or entered by a scheduler.How will VCL requests be created/managed in regards to the EWL process in VSE?The process for the VCL is the same as what is currently being done in VistA . In the VSE GUI:i. Make an appointment in the desired clinic. Include in the notes section field the Choice Opt Out String: #COO#Ii. Make a second appointment request into the desired VCL clinic and transfer to the EWL. Include in the comments field: Choice Opt Out string: #COO#Will pre-appointment Provider documentation in CPRS "Check out" the patient in VSE as it does in Vista?YES if the status of an appointment changes in VistA it will reflect the same in VSE.June 24, 2016Entered into VA Pulse through this pointDo you have to select Refresh in order to take action on the request that appears in the Consolidated Request List right after an appointment is canceled by the patient? No. The request that appears at the top of the list should already be highlighted and you can go to the clinic appointment grid and reschedule the appointment without needing to take any other steps. When you click on an appointment in the clinic grid the patient’s demographic information is displayed in the ribbon and the patient name is in the Search box but the consolidated request list isn’t for this patient. Is this a bug?This is working as designed. In order to view the specific patient’s requests, you will need to click the Search button.Why aren’t Recall appointments removed from the consolidated request list when the appointment is scheduled?VSE works the same way as VistA with regard to Recall appointments. A nightly job runs in VistA that will remove the Recall request from the list without users needing to take any action.The request doesn’t immediately appear back in the consolidated request list when a consult appointment is cancelled by clinic. Why do I have to refresh or retype the patient name in the search box and click the Search button in order for it to appear?The information doesn’t come from VSE and has to be pulled in from the Consults package.If the scheduled appointment for a Recall Request falls outside the 45-day window, and as such the nightly task does not remove it, how should those Recall Requests be dispositioned? What disposition reason should be used?The process does not change from the current process. You would use the same disposition reason that you currently use in this case. To disposition in VSE simply right click on the recall request and slide down to Recall disposition – choose the appropriate disposition reason (these are the same reasons that Vista allows) and enter an option comment then click OK.When VSE goes to production, will EWL/VCL requests from 2014 through now all be displayed in the Consolidated Request List as pending EWL requests?Yes, all EWL/VCL requests will be displayed.If there’s an appointment request in VSE, but a scheduler decided to make the appointment in Vista instead of VSE, will the appointment request still show up in VSE? Appointment requests must be scheduled in VSE to satisfy and close the appointment request.What is the appropriate action in system if a request gets entered as a duplicate (i.e. someone doesn’t know that a request already exists)? Does this need to be confirmed/clarified with the Veteran and/or provider first? What is the appropriate disposition option?To confirm an appointment request is a duplicate the scheduler would take the same steps when confirming if an RTC order is a duplicate. If the scheduler has confirmed the appointment request is a duplicate it can be dispositioned using the Entered In Error selection.If a consult is discontinued or cancelled in CPRS, does it automatically remove the associated appointment request or does it take overnight for it to disappear from the consolidated request list?The associated appointment request will be removed once the consult is discontinued. The screen would need to be refreshed to verify this. July 15, 2016Entered into VA Pulse through this pointCan the MSA enter a request without access to a prohibited clinic?Yes, staff can enter an appointment request to a prohibited clinic without having privileges. They will not be able to schedule the appointment unless given access.July 18, 2016Entered into VA Pulse through this pointCan Recall be added as an option on the Request box that displays after a patient is checked out?In VSE after you check out a patient the Appt Request box comes up. The Super Users believe it would be easier if they could schedule a Recall from this point.It will need to be submitted as an enhancement request. Can you edit a Request after it is made?No. You cannot edit requests after they are made to prevent manipulating information such as request dates.?However, the ability to edit special needs and preferences?has been offered as an enhancement.What does RR No Date mean from the Consolidated Request List header?It is the date upon which a request enters the system, be that from another system or entered by a scheduler. RR is an abbreviation for Recall Request.Do Procedure requests display in VSE like Consult requests?Yes, they do.What is the red bubble in the Mobile Request Pane?It is an indicator of the number of new/pending Veteran Appointment Requests coming in from VAR application.Do Special Needs always display or have to be re-entered?They always display in the Ribbon Bar for the veteran until edited/removed via APPT Request dialog.Does the cancel appointment auto-generate a new APPT Request?No, it is not creating a new APPT Request it is re-opening the original request entered.July 22, 2016Entered into VA Pulse through this pointVistA InteractionsKeywordsSchedulingQuestionAnswerWill the scheduling portion of VistA be disabled or shut down?The appointment management menus won't be disabled within VistA. They're going to remain for "emergency" use, and also because the same menu is used for both options (SDWL).Remember that VSE just sits on top of VistA, so that core functionality needs to remain in place.Will there be a way for us to see when the schedulers are using VistA vs VSE?There are reports available that is discussed on day 4 that allow you to see numbers for those scheduling VSE. There is no comparison from the VistA end, just the Scheduler Audit Activity Report in VSE.Does VSE force you to check in an unscheduled visit?VSE does prompt for a check in, but schedulers can cancel the action and the patient will not be checked in.If we check them in in VSE, will the medical record automatically print?If you have VetLink the guidance is to continue to use that to check in patients, be they scheduled or unscheduled. Can you leave the check-in process prior to check-in in VSE?Yes, you can cancel the check-in action.If a patient is pulled up in VistA will that patient show in VSE automatically?No.Will the check-in function of VSE update VetLink?No. Facilities using kiosks will need to continue using VetLink to check in patients.Will the current EWL and RR lists in VistA populate in VSE?Yes. Can a user have more than one session of VSE open?Yes, users can have multiple sessions of VSE opened. However schedulers need to proceed cautiously if multiple sessions are open.Will disruptive behavior flags like in VistA appear in VSE?Yes, the flags will pop up in a separate dialog box. It actually looks exactly like it does in CPRS/VistA now.Do all patient flags appear in VSE?No, only National Flags will populate in VSE. Locally created flags will not present to the user. Please note the Behavioral Flag is currently not populating in VSE. This was an oversight during development and is being corrected. If a supervisor has access to multiple sites in VistA, will he or she have that same access in VSE? In VSE, the supervisor will only have access to the medical center’s instance of VistA. If they happen to be on an integrated system (where multiple sites share one VistA installation), then all sites will all be accessible.Will no-show letters/pre-appointment letters, etc. pull from what we already have stored in VistA?Yes, any letter options will pull from the letters you already have configured within VistA.Can letters be reprinted? For example, if the letter is printed and sent out, and the scheduler finds out the address has changed, can the letter be reprinted after the address is updated in VistA?Yes, if the scheduler opens the appointment in VSE there is a reprint option in the lower left corner of the window. Can an appointment several days in the past be marked as a no-show?Yes. You can mark a patient as a no-show after the appointment date, just like you can now in VistA. If you are unable to mark a patient as a no-show, contact a supervisor or ADPAC who can troubleshoot why the no-show didn’t appear. Where will the “attempt to contact” letters come from? It gives us the option to track our call attempts and mail a letter, but where is the letter coming from? Is it automatically generated by the VSE system?The letter is not coming from within the system; it is just a means to record that you have made the attempt in this case. However, because there is not a reporting function and this information is not sent back to CPRS, the recommendation is to continue to track contact attempts in CPRS until this is resolved.When you create a telephone contact for a patient in VSE, where will notation show?Currently, besides looking at the request in VSE, this information is not reflected anywhere else. Since there is not a mechanism to pull this information from VSE and we are not sure how long it will take to add this important feature, we should address the call attempts feature as being under further development and to continue using CPRS as their primary mechanism to document call attempts. We will be modifying how we speak to this functionality. When the consult appointment is made in VSE, does it send the documentation to CPRS that it is done or do they have to then go into CPRS and document that the appointment has been made? Making the appointment in VSE will update the information in VistA (and, in turn, CPRS). Similarly, with a consult, since it is provider-initiated and comes straight from CPRS, the CID is the date reflected in the system and it should stay the same. If a patient is checked in through VetLink, does it show checked in in VSE and vice versa?VetLink communicates with VSE but not the other way around. If the Veteran Checks into the kiosk, it is reflected in both VSE and VistA.When the VA starts using PIV for computer access will it also work for VSE or will Users continue to use their VistA log in information?They will still need to use their VistA log in information.June 20, 2016Entered into VA Pulse through this pointCurrently clinic name changes cause the recall system to have glitches. ?Will VSE have these same issues?VSE receives its information from Vista. The information in the recall system is sent to VSE. If there are glitches in the recall system and the clinic names are not correct it will pass the incorrect clinic names into VSE. The Recall documentation lead the users to believe that the NAMES of the clinic must match but it really is not looking at the NAME but the IEN number of the clinic. Clinics MUST have a Recall Letter attached for the clinic to be selectable in VSE.How will implementation affect radiology check in/out procedures?Works just like VistA The radiology package still does not “talk” to Vista so it will act the same in VSE. Radiology clerks will still need to use the radiology package to complete the information for that package.Will scheduling audits require pulling data from both VSE and VistA? Is there a planned enhancement to consolidate information?All audits are in VistA as VSE is just a GUI overlay of VistAJune 24, 2016Entered into VA Pulse through this pointIf a clinic is cancelled in VistA will it automatically show up as canceled in VSE?Yes, if a clinic is cancelled in VistA, it will be unavailable in VSE. For the request, my best guess is that the instructor was saying you cannot remove a request by cancelling the clinic in VistA. Therefore, if an appointment is no longer needed, the request would need to be cancelled.In VistA if a patient is non eligible they receive a big prompt indicating that. Will this show up in VSE and where would they see it?They do not get a large prompt as in VistA. When you go to schedule an appointment, the Patient Eligibility Information window displays alongside the New Appointment window. The Patient Eligibility Information window includes the Service Connections Percentage, Primary and Secondary Disability Codes. You can check this out in Figure 90 on page 75 of the VSE User Guide May 2016 Final.If you use VSE to check in patients will it communicate to Pyxis (used by diagnostics)?If Pyxis receives its information from VistA, then it should continue to receive the same information. All actions taken in VSE are sent to Vista and the files updated.July 15, 2016Entered into VA Pulse through this pointIn VistA a patient can have up to 3 phone numbers listed (home, work, cell). Which one is VSE using? ?If a patient prefers to be contacted on their cell phone should the scheduler put this in the preferences section?The Contact Information shows home and work/office numbers, as labelled. The scheduler could certainly include that in the preferences. The sites could determine this is the local policy and add it as an element in the training.Will using VSE Print Letter? dialog impact the auto print letter process for appointments greater than 21 days from VistA?No, it will not. Using the Print Letter? dialog allows schedulers to print a single letter for the appointment just scheduled. It will not impact any background jobs set up to auto send letters already scheduled.Will VistA access be cut-off so that schedulers can only use VSE?As there are limits to what can be done in VSE, there is not a current plan to cut-off schedulers from VistA.Will EWLs in VSE appear on EWL Report in VistA?Yes, they will.Will VSE give an alert when a scheduler attempts to mark a nursing home patient as no show?In Vista if a patient is living in the nursing home at the medical center they are marked as in patient even though their medical visits are handled through the outpatient clinics. When a scheduler needs to mark a patient like this as a no show there is an alert that comes up that stops them from doing it.There is not an alert as this is not standard VistA functionality. This could be an enhancement request.July 22, 2016Entered into VA Pulse through this pointAppointmentsKeywordsCheck outQuestionAnswerDo I have to complete the scheduler check-out? What if the Veteran leaves the clinic without stopping by? Do I have to track the Veteran down?It is not required, but it is designed as a useful way to ensure you have spoken with the Veterans before they leave.Can the provider complete the encounter themselves?Providers can and should complete encounters as they normally do. The check out within VSE does not replace this process.How does a user schedule variable length appointments?To begin, create the appointment request. The appointment request will populate in the request grid and the clinic grid will populate in the Schedules area. Locate the appointment slots, alternate-select to highlight the appointment slot, hold down the shift key, and alternate-select the appointment slot below the first one. Both appointment slot boxes should be highlighted now. Select on either box and select “Add Appointment.” Follow the additional steps to finalize the appointment. If you click on cancelled by patient, change the CID, and then re-click on cancelled by clinic, does the original CID reappear?The behavior when an appointment is cancelled by the patient is to cancel the appointment request Cancel by Patient” and then in the appointment request, change the CID/PD date to the Veteran’s PD and reschedule the appointment.?Appointments cancelled by the clinic must indicate such when cancelling.?When cancelled by the clinic there is not an option to reset the CID/PD date which is the way it is intended to work.?Other finagling would be considered inappropriate.?When a patient calls for an appointment, schedulers were told to ask the patient when he or she would like to be seen. If they say tomorrow, and their CID is 8/1/16, will schedulers still put 8/1/16 in the CID/Preferred date box?If the request exists already in the system with a CID because the provider requested it, that date stays the same. If the patient calls in and asks for an appointment that does not have a related provider-initiated request, then you would use the patient’s desired date. The system should be prompting you clearly for one or the other.When you hover over a scheduled appointment slot in the Schedules Section will that veterans display?Yes.Will Schedulers still have the ability to add a Lab, X-ray, or EKG to an appointment?No, schedulers will need to schedule all Lab, X-ray, and EKG appointments separately.In the Schedules section, can a site customize it so they see 7 days before and after an appointment, not just three?No, the views available are Day, week (3 days before and after requested date), month (calendar month), and timeline.Does VSE show the clerk’s name who scheduled the appointment? And is this name reported back to VistA?VSE does not show that information in the appointment details. When cancelling a multi-book appointment, the box below that says “remove appointment request”, can you click that box and it removes the request or do you have to go in and manually remove it like it makes you do in the simulation?The Close MRTC Request dialog box displays the following options: Cancel the selected appointment onlyClose the associated appointment requestCancel all pending appointments in the seriesClose all associated appointment requests in the seriesSelecting the first two will also remove the request. In the simulation, we wanted them to cancel only one appointment and then complete an APPT/Veteran Disposition to remove the request. You would need to select both of the appropriate options from the Close MRTC Request dialog box.June 20, 2016Entered into VA Pulse through this pointWhen working with multiple appointments can you go back and print all of the appointments on one letter for the patient?No, appointment letters must be printed at the time of action. Schedulers can use VistA to print a letter with all of the appointments if their facility allows multiple appointments on one generic letter.Will Schedulers and/or managers have access to generate a real-time report of cancellations – appointments that have been cancelled by patient or by clinic?Not from VSE. Vista Fileman can be used to create real time reports for that information.Is there an easy way to view cancellations as they happen? Say, if I schedule for all PC providers, can I see when a cancellation happens in one of the clinics, so I can fill it?No. Vista Fileman can be used to create a real time report for cancellations. When no showing a veteran in VSE, will a no show post card automatically be generated and sent to the veteran like it currently does in vista?? VA has a Xerox contract where postcards in VISN 1 (and other VISNs) are automatically mailed from one centralized VAMC in the VISN.Any site using the Xerox Printing Center needs to be aware that a CrossWalk job runs each night and extracts the data from Vista. Since VSE updates VistA, this data will still be gathered by the CrossWalk job. ?Sites will have to instruct the scheduling staff to not use the printing capability within VSE. Is there a way to see the next available time slot for a clinic/provider/etc.?They can look at the calendar view, select the time reference (day, week) and take a look. At the moment, that this method to view availability.Is there going to be an enhancement that adds RTCs to the request list? If so, when is it slated to deploy?Yes, there will be an enhancement to place the RTC date (CID) directly into VSE. The ACAP office via Barb Schuster has also placed a national service request to have this done in regular VistA. It is not expected to be in VSE for at least 6 months. Will you be able to link the consult?Yes, if the consult has the same associated stop code as the clinic.Do you have to put actual date like 02/01/17 or can you still use t+6m?T+6m does not give the correct dates. -It takes the date but does not return the expected date.How do you print a list of appointments for the next day so that you can make phone call reminders?You would have to print from VistA if a printout is required, but a user could work from system instead of a printout. ?Can you print schedules for the clinics instead of just request grid?? If yes howNo, they should print the clinic schedules in VistA right now.? ACAP will check to see if this will be a future enhancement.When you need to alter the patient remarks is there a way to do this without creating a new request?Remarks are the notes tied to a patient’s special needs and preferences. There is not a way to change these without making a new request. ACAP will forward this on for future consideration of an enhancement.Is it the goal to eventually shut off VistA when we are able to do everything in VSE? And is there a target date?Not currently. This just sits on top of VistA and still requires VistA to functionHow do you make a slot temporarily not available? For example, an hour meeting for a provider. And how quick does it occur?This is not something you would do from within VSE. The schedule configuration is handled within VistA. They might opt to recommend this as an enhancement.The provider requests a Recall in 6 months. The clerk will enter this into the VSE system as a request. ?Is there a way to print all future recalls for that particular clinic? If the user queries the list to show Recalls for a given clinic. There is a Print option in the Tools section of the ribbon that will print the current version of the list.How have the sites transitioned from the VISTA Recall system to the VSE Recall system?The Recalls will come into VSE directly as they go live.Currently the VISTA system recognizes (based on Stop Codes) if an appointment is scheduled and there is a pending consult for that same service. Once the appointment is scheduled, the status on the Consult will change to SCHEDULED. If the appointment is cancelled or rescheduled, the status on the consult is tracked.Will this feature be available in VSE or will the scheduler have to change the status of the consult service?Yes, this will work the same way from VSE, so long as the appointment is within the designated time window.Will a separate appointment have to be made for lab work or x-rays?Right now they append these appointments to the patient's appointment with the doctor and they want to know how this will be handled in VSE.They will need to continue their current processes for this. This is not well integrated with VSE currently.Have you heard anything about Vista enhancements for in patient services (admitting, etc.)?? One super user said that he heard there were some enhancements coming in the Fall.The team is assembling these currently and plan to have the list published on the VSE VA Pulse in an accessible area. There will be a tool where super users can look for “known issues” as well as enter any issues they encounter (if not on the list). This is being handled by Deb Malkovich and Erin Vanderwall. Will check in with them to identify their progress. We will offer a few training calls/ sessions to the super users specific to known issues (those who have already attended the training) and share these with you as soon as the list is validated.Is the appointment request added once the consult is made active or while it is still in pending status?The Consult will appear as soon as it is signed. It must be a local policy to not schedule a pending consult as this is not a National Directive. There is no indication of the status in VSE – we may want to submit this as an enhancement request as you are not the first to point this out. You will need to follow your local policy for when to schedule an appointment. A consult list can be queried for the scheduler to work down but you will need to work out a local process for deciding if they should be scheduled or bypassed based on your local procedures.When we schedule in Vista we also have to manually go in and attach the radiology order to the appointment in the Appointment management system. It doesn't do so automatically, so does this one do so or are we still going to have to attach the Radiology order to the appointment?The radiology package does not really play too well with scheduling, so this process will need to continue at this time. You will need to determine a local process to make sure this is still being accomplished. This may be something the site considers requesting as an enhancement.Can you do bulk cancellation of clinics in VSE if a provider calls in?You cannot change a clinic’s schedule (e.g., remove all availability for the day) via VSE. This must still be done in VistA. I assume this is the person’s questions, since appointments themselves require individual attention.In the system tab, scheduling management, the “Access Groups” tab is grayed out.? What is this tab?? Does access?need to be given to open/utilize this tab?In the User Guide, Access Groups are defined as “Categories of Access Types. Assigning Access Types to Access Groups makes it easier to schedule and search for certain types of appointments.” Access Types is defined above that term as, “The variety of different appointment types available in the Legacy VistA Scheduling package. Each type of appointment, such as routine, physical, dental, walk-in, or other specific appointment type is an Access Type.”This function was disabled pre-deployment. No access needs to be provided.What is the date range of the pending appointments that show on the list?A year in the future and a year in the pastCan you link two appointments to one consult request (i.e., interventional radiology)?No, there is a one-to-one correlation between requests and appointments.Can you multi-select a few clinics then click add resources, or do you have to do each individually if you don't want to add all?Yes, you can use Ctrl or Shift to select multiple options as you might in other software.June 21, 2016Entered into VA Pulse through this pointHow many overbook appointments can be added into each of the clinic group set up?Overbooks are dependent upon the clinic set up in VistA, which is where they define if a clinic can be overbooked at all and, if so, how many.During slide 50 Super User read from script “For example, you will see an alert if you attempt to check in a patient too early.” Question from scheduler in class: What does the alert look like? Does it prevent people from checking-in patients before it is time.Check-In cannot be completed prior to day of appointment. The option to check in is greyed out prior to day of appointment. However, on day of appointment there is no alert that says it is too early to Check-In patient if it is still prior to start of appointment time. There are no alerts or restrictions for Check-In of past date appointments. This has since been updated in the script to state “Check out a patient too early.”The schedulers are asking where they can print the appointment list for the day, especially to give to their doctors.For printing, the only print option currently is of the request list or reports. They are not the first to ask though, so I would imagine that this will be a fairly high priority enhancement.Will Svc Related checkmark auto populate in appointment request?Yes, if veteran has 50% or greater service connected percent.Why do we have to create an appointment request now?This is the design of the system that enables us to ensure that we don’t lose patients through the cracks if an appointment is cancelled without being rescheduled.What is the checkout process?This is local process, but it is likely the time when you schedule any follow-up activities with the Veteran.Which of the following fields is equal to the comments entered when booking an appointment in VistA?a. Remarks = Special Needs entered in Request dialog and stays with patient are displayed in Ribbon Bar.b. Comments = Requests entered in request dialog and stays with specific request are displayed in Comment column on Consolidated Request List.c. Notes = Appointment and stays with specific appointment are displayed in View Appointment from Clinic Schedule Grid.Will a Check – In completed in VSE update Vet Link?No, but a check in done in VetLink will update VSE.June 24, 2016Entered into VA Pulse through this pointHow will pre-registration be completed?Pre-registration would still be completed in VistA.Will the appointment management menus be disabled?The appointment management menus won't be disabled. They're going to remain for "emergency" use, and also because the same menu is used for both options (SDWL).Will "walk-in" be used for "non-scheduled" appointments, like those currently used in the ED?Yes.Does the request have to be viewed by a provider first before it can be scheduled?This would likely be a matter of local policy. If a patient calls in now to ask for an appointment, when do you consult the provider?Do we have to make an appointment request in order to schedule an appointment?Yes, consider this as entering your search criteria for the appointment, so that the right schedule and date display.If the schedulers are unable to no-show a patient after the appointment date who will be able to do this?You can no-show a patient after the appointment date, just like you can in VistA now. If you're having issues, contact a supervisor or ADPAC who can investigate why the no-show didn't take and troubleshoot.If patients check in using the VetLink kiosk, will it turn green in VSE?Yes.Is there a way to see clinic availability without creating an appointment request in VSE?Yes, you can look up a clinic, clinic group, or provider using the search option next to the Schedules section. Use the Clear button to remove any current search criteria or selected requests/patients, then search for the preferred schedule.Telehealth appointments require two appointments for the same patient. One at the provider site and one at the patient site. These appointments are separated by 1 minute as we are unable to make 2 appointments for the same patient at the same time. How, in VSE, do we make appointments for times such at 11:01?At this time, you can only schedule appointments based on the times built on the grid. This (making appointments at alternate times) is being looked at as an enhancement. An enhancement is being looked at for telehealth clinics to allow for overlapping of appointments and the ability to manually enter an appointment time.A Super User stated that when creating an appointment request for Recall, the CID and Wait Time did not correlate. Has there been issues with this? (My understanding was that the wait time was automatically calculated based on today’s date and the CID entered).A Super User stated that when creating an appointment request for Recall, the CID and Wait Time did not correlate. Has there been issues with this? (My understanding was that the wait time was automatically calculated based on today’s date and the CID entered).Wait Time in the Request List is calculated from today to the CID date (it will show as a negative).Wait Time in the Request List is calculated from today to the CID date (it will show as a negative).Is there a way to tell who made the appointment from schedule view?Is there a way to tell who made the appointment from schedule view?Can schedulers schedule patient appointments in multiple clinics (i.e. pcp. podiatry, optometry) on the same day?Yes, you can schedule appointments in multiple clinics by selecting each request in turn and scheduling them. If you look up the patient, all pending requests for the patient display in the consolidated request list and appointments display in the Pending Appointments section. As you select a request, the schedule for the requested clinic or specialty displays. When you schedule the appointment, the focus will move to the next request for the patient and you can schedule subsequent appointments, while seeing the appointments that are already booked.For consults, will schedulers no longer ask patients when they would like to be seen? Currently, schedulers must ask this question and enter it as a desired date.Providers are to discuss return appointments with the patient while in the treatment room. Together, they decide the CID, based on clinical necessity and the patient’s availability and preference. The date used is the CID as reflected in the RTC. The process is the same for consults. Schedulers should absolutely be scheduling based on the patient’s needs. Please note that there is no fields available for the scheduler to enter the patient’s preferred date for a consult, since it is CID-driven. However, the scheduler would find a date and time as near to the CID date as possible. The scheduler has 30 days around the CID to schedule based on patient preference and clinic availability. When scheduling the appointment, the scheduler should enter the desired date in the Notes field along with an explanation as to why the date was selected. The patient’s preference is captured specifically when the patient cancels an appointment and are rescheduling and/or when an appointment is needed between the last appt and a future appointment.Is there a way to select two requests at one time, pull up a group you created, and schedule both at the same time? If not, could this option be added?Currently, you cannot schedule two requests concurrently. This would yield an error since you would be creating two appointments for one patient at the same appointment time. You can do them in quick succession though, and be able to see when you scheduled one appointment while you are scheduling the subsequent request. To clarify, schedulers will not have the ability to create their own groups.On our last simulation, you did a no-show before the actual appointment scheduled time. Can we do a no-show before the actual appointment time in real time? If so, why would you do it?You would not want to do a no-show before the appointment scheduled time. The system allows you to do a no-show anytime during that day or on past dates, but not for future dates.Do we have to click "Ok" to check in the appt? If we do check in the patient will the option to check in a patient, in VetLink, remain viable? Currently, checking a pt in using VistA prevents us from checking the same person/same appt in via VetLink.No, you don’t. When creating a walk-in, you can cancel out when the prompt displays to check in the patient so that the patient can check-in at the kiosk, or the Scheduler can check the person in using VetLInk so the information displays across all systems.Say the provider writes an order to RTC in 3 weeks, when you schedule an appointment will it complete the orders for that appointment in CPRS?No, currently the scheduler is manually entering RTC orders from CPRS into VSE and any follow-on activities upon scheduling the appointment will need to be completed manually as well. This item has been brought up as a requested enhancement.When a patient is marked as a no show – is that the only time that a letter can be printed?Letters are available at varied places throughout the process. Whenever you make an appointment, you receive a letter prompt. You can also go back into an appointment to reprint a letter if needed. You get letter prompts upon cancelling an appointment as well.Will the scheduling grid in VSE allow you to add/overbook appointments in earlier timeslot that are not open in the grid?Background: Right now in some clinics they open one time slot (for example, 11:00 a.m.) but in VistA they can schedule appointments any time before 11:00 a.m. or after 11:00 a.m. even though those slots are not open in the grid. In the test environment, it will only allow them to schedule appointments after 11:00 a.m.No, you will not be able to schedule outside of the available hours. However, the team is aware of this as something the field would like to see updated.VSE letters only print one appointment at a time. Has there been any discussion about changing this so that multiple appointments can be printed on a letter?Yes, there is discussion of that and of those who use the Xerox print service (which will continue to function as it does now and mean that sites do not need to print the letter).Will letter that prints list the number of days until the Vets appointment?Letters are defined at the local level. VSE should not cause any change in their current letters.July 6, 2016Entered into VA Pulse through this pointIf the patient has already been checked out how can the MSA identify it as a walk-in appointment?Staff completing travel claims will have to continue to use the same method used now for determining walk-in appointments.If a Veteran is in a Mental Health Appointment and their Provider requests an EKG during the same appointment what is the VSE process?The process in VSE will be determined by your current process. If an appointment is scheduled, then the Scheduler will create an appointment request and schedule the appointment. If it is an unscheduled appointment or walk in the Scheduler will use VSE to create the appointment request and schedule the walk in appointment.If the appointment overlaps the current appointment, you will need to schedule the EKG in Vista at this time as VSE does not allow appointment overlap – this is being addressed for future enhancement.July 15, 2016Entered into VA Pulse through this pointCan we look at the appt request history for a pt?VSE does not offer this ability.Should a Consult list the CID Date and not the urgency e.g. Routine?Staff should continue to review the Consult in CPRS before scheduling the appointmentJuly 18, 2016Entered into VA Pulse through this pointHow can you tell if an appointment was a walk-in appointment (an unscheduled appointment) in VSE after the patient has been checked out and the color has changed from blue to green?This can be determined in VistA using EP to display details.How far in the future can you use drag and drop to change a clinic appointment?Seven days – within the week display.What is the time period for appointments to be displayed in the pending appointments box in VSE?The time period is two years (one year past and one year in the future).Can you view wait time in an appointment?No. This has been suggested for a future enhancement.July 22, 2016Entered into VA Pulse through this pointClinic Set upKeywordsConfigureClinic LimitQuestionAnswerWhere can we point sites for guidance on how best to configure their clinics to display well in the Schedules section?The process/procedure for Creating clinics has not changed. The VSE calendar display is a great tool for seeing the availability (slots) you have set up for multiple clinics side-by-side in order to validate that you have not created too many slots for the same time for a given provider.Is there a limit to clinics in the clinic list on the supervisor tab?Clinic Groups display best if there are 7 or less clinics in the group. The application does not restrict the number – this is just an observation from the sites and is a recommended number.June 24, 2016Entered into VA Pulse through this pointIf I select service specialty when making an appointment, what will be returned? How is VSE pulling that information?The clinics that display for the service/specialty are based on the clinic set up within VistA.Prior to scheduling an appointment, how can I display my groups or deselect a request?If you do not select a request, you can use the search next to the Schedules to look up a provider, a clinic, or a clinic group of your choosing. Selecting Clear next to the patient search field, allows you to deselect any chosen requests and clear any current search criteria. This is essentially a reset allowing you to look at just the information of your choosing by entering search information next to the schedules.July 6, 2016Entered into VA Pulse through this pointSystem FunctionalityKeywordsFilterQuestionAnswerDo Filter choices stay between patients?Yes, but not between logins.June 24, 2016Entered into VA Pulse through this pointCan the NEAR (New Enrollee Appointment Request) List be accessed in VSE?Not currently, but it is a planned enhancement.Can a default printer be set up in VistA for VSE by clinic name and/or location?No, the printing dialog will be the standard print dialog for the user through MS Windows.When VSE goes live will a scheduler still be able to schedule under VistA?Yes. There will still be some items that cannot be scheduled within VSE.Can you set up clinic groups in VSE?Yes. These will be set up by supervisors.Can you run Encounter Reports and Clinic Reports in VSE?No, most reports will still need to be run in VistA.Would it be possible to get a graphic or chart that shows the data flow between VSE and VistA and any other systems?The main idea to always keep in mind is that VSE is just sitting on top of VistA. Whatever items are in VistA is what should be reflected in VSE.Will comments made on a consult request in VSE display on the consult in VSE (i.e. Contact attempts, etc.)?Both of these state VSE, in which case, the answer is yes. If the question is do the contact attempts pass back to VistA/CPRS, then answer is not. Because of this and because there is not an easy reporting functionality for contact attempts, the recommendation currently is to continue entering contact attempts in CPRS.Is there any chance that the ability to update demographic information will be available in VSE in the future?Yes, demographic changes need to be updated in VistA. The ability to update in VSE is a future enhancement on the list.Where can I find Scheduling Policies?Your scheduling policies are local and would be found most likely in your local MCMs on the intranet. If not, ask a super scheduler for your local scheduling policies.If I am scheduling a new patient who has no phone number listed, can I add it in the applicable fields?We are unable to update any demographics in VSE. Users must continue to update demographics in Vista.Does this attempt info stay in the system to view later if needed when doing audits?Currently, the call attempt info is not displayed anywhere in VSE or VistA; this will be changed in a future enhancement. Please continue to teach your users how to record these attempts, for future use, but users should document the attempts using the current process.Do we know if there are any intentions of incorporating VSE to communicate with Vetlink?This is actually a VetLink limitation. It does not receive communication from VistA on appointment status, which is why an item being checked-in in VSE does not relay. The guidance being provided is to continue using VetLink for check ins.Can you use the member number on the new VA ID cards, which can be used in the current VISTA system?The member number cannot be used to search for a veteran in VSE. The only number combination accepted in VSE is the SSN.Will patients still get a recall letter?If this is an automated process within VistA currently, then it will continue. Remember that VSE just sits on top of VistA.In the Request section, why is there data already populated in this section when you first log on? This is before you search for anyone. Will it be this way in the production version of VSE?This is your consolidated request list showing all pending requests for your site with those that have the longest wait time first. This is how it will be in production.Is it possible to print schedules and clinic cancellations in VSE?It is not possible to print schedules from within VSE or clinic cancellations from VSE. However, you can still print from VistA.Will work time in VSE be longer than in VISTA (vista logs out and you lose screen quickly and must start over)?The time out for VSE is 15 minutes.Does the Patient info box show if patient is currently an inpatient?If the patient is an inpatient, there location would display next to Ward: in the patient information box.July 6, 2016Entered into VA Pulse through this pointWhen looking at clinic availability, what does the number in the Resource ID field mean?It is a system number that is unique for each clinic.Can consults be transferred directly to the EWL?No they cannot. The person asking the question will call the VA Pulse coaching line for more information.For Consult and EWL requests made for specific clinics, is there a known incident with the schedule for the clinic not displaying with these request types?The process for scheduling a Consult has not changed. A Consult is a request to a service not to a specific clinic. When the scheduler receives a Consult they determine the appropriate clinic to link that consult to. The process is the same here. The scheduler will select the Consult request and then choose either a specific clinic or a clinic group to determine where to link the appointment.The EWL is also similar to VistA. When transferring a request to the EWL (or if it is imported from VistA) if it is to a Service instead of to a specific clinic then the scheduler will need to choose the appropriate clinic that will close out the EWL request. If the EWL is to a specific clinic, then the schedule for that clinic will be displayed when the request is selected.If a Consult is scheduled – does the wait time reset if the person no-shows? Or does it continue to accrue?The wait time is set as the earliest appropriate date in the consult. Cancelling by the patient allows the user to change the CID date in the cancellation but when the consult request reappears the earliest appropriate date will be in the CID field and will be used to calculate the wait time of subsequent appointments.Are there any plans to create any additional roles?This has been requested by numerous staff including a view only sign in. It has been placed on the Enhancement list for consideration.Is the SDECZMGR key live as ECAR option to get key assigned to supervisor?The menu options and keys are not available for selection at this time and users will need to address the appropriate way to request this access in the test environment only with their local OI&T. The menus and keys are not available in production as the patch has not been released yet.What are clinic groups?Clinic groups are collections you can create within VSE to assist schedulers in performing their job duties. The clinic groups provide a display option showing grouped clinics side-by-side. Each site can determine their own best practices for creating clinic groups. One example of a clinic group might be PACT provider clinics with panels that can handle additional patients. By grouping these clinics, a scheduler can view all of these clinics at once to determine where a new patient can be placed soonest. A different example is in areas where you are coordinating or sequencing appointments, such as dental services where a patient sees a hygienist, then a dentist.What is the clinic profile user friendly name? What stop code is used to run the clinic profiles?Patient Friendly Name is a new field located in the Set Up a Clinic option. This new field allows the clinic to be assigned a secondary name that will be available for veterans to see when the new VAR application is available. VAR will allow veterans to request an appointment with a specific clinic. The stop code for Primary Care is 323 and the main stop code for Mental Health is 502. I have attached a document showing examples of Patient Friendly Names and one for field guidance.Is Service/Specialty configured when VSE is set up?No. Will comments entered in VSE display in Visual Aid for Clinic Appts?The comments that are entered in the Request would not pass to Visual Aid.July 15, 2016Entered into VA Pulse through this pointHow often do the flags display per patient? Every time like VistA or once like CPRS?Flags display once upon selecting the veteran.Is there a way to see if a Veteran is enrolled? We are not seeing it in the demographic information.Staff can view the demographics area and the patient’s eligibility information box when entering an appointment request. If they have concerns with the information they can contact their enrollment office.Will the system allow an MSA to schedule outside the grid?No, you will not be able to schedule outside of the available hours. However, the team is aware of this as something the field would like to see updated.Does RTC order change due to Clinic Cancellation?Neither of these are within VSE. RTC orders from CPRS do not link directly to VSE and you cannot cancel a clinic via VSE. If the question is whether a user can change the CID based on cancelling an appointment due to the clinic’s needs, not that may not be updated.When using VSE, will the appointment connect with CPRS to show a Consult status change?Yes, scheduling the appointment will update the status of the Consult in CPRS to “scheduled.”Will MSA be able to print attempt letter from VSE?No, since contact attempts are not currently recorded in VSE, this would need to be done elsewhere.Will MSA be able to search for a patient using VHIC member number?No, currently, the search options are limited to name, full SSN or last initial last 4.July 18, 2016Entered into VA Pulse through this pointWhat is the timeout period for VSE?It is the same as the VistA timeout period.Will call attempts recorded in VSE replace CPRS scheduling and tracking notes and reports in the future?We believe this is the eventual intent, but since it does not currently allow for tracking or reporting, it cannot be used currently.How often is the data for the audit report compiled? Should results be displayed in real time, end of the day, or the next day?The audit report refreshes every 3 to 5 minutes.Why would a query indicate there are results but no result information displays?This happens because a filter is turned on in the consolidated request list. The filters are applied after the query. If the filter is removed, the results display.When setting a filter for an audit report will the filter still be in place the next time the report is run?The filter will remain in place until you clear the filter.Where is the Fixed-View Size box?Only on Provider and Clinic Group Schedule displays. This allows the grids to be expanded to the same size for easier viewing and displays a horizontal scroll bar to view those schedules that are off screen.In the call center they use a TRN (Telecare) system to update a patient's address, etc. Will TRN information show up in VSE?If TRN updates VistA’s normal #2 Patient File/fields for demographics, then VSE shouldn’t have any issues seeing the changes.July 22, 2016Entered into VA Pulse through this pointVAR Compatibility KeywordsMobile appQuestionAnswerIf a veteran requests an appointment day and time in VAR that is available in VSE will it automatically be blocked for that patient?If the patient only requests a day and morning or afternoon, it will not automatically schedule. A scheduler will need to align the requested time and dates(s) with availability within the clinic schedule and schedule the appointment, then respond to the Veteran.Using VAR, does the Veteran have the ability to see the clinic availability?Direct Scheduling will be rolled out with the VAR for limited clinics. Prior to worrying too much about this functionality, we would recommend awaiting additional information that will be forthcoming regarding VAR.July 6, 2016Entered into VA Pulse through this pointThe requirements for the VAR indicate that it is "Only available to Veterans who have a DS Logon Level 2, Premium Account. Is this the account through My HealtheVet?Yes, that is through My HealtheVet. There is more information available here: Account Types.Will the mobile request details window remain open while you are creating the request?Yes, the window stays open and available unless the user closes it.July 15, 2016Entered into VA Pulse through this pointDoes VAR send an alert back to patients?VAR does have email functionality to alert notifications to patients. When Veterans submit a request, they can request an email when a status is changed so when it's booked or changed they’d get an email. They can log in and find out the status of their request also. They can also see a list of current apt requests and their corresponding statuses.How are schedulers alerted that a mobile VAR exists?There is not an alert. Sites will designate responsible parties for checking the requests regularly (multiple times a day).July 22, 2016Entered into VA Pulse through this point ................

................

In order to avoid copyright disputes, this page is only a partial summary.

Online Preview   Download


Page 2

Problem SolvingIn previous math courses, you’ve no doubt run into the infamous “word problems.” Unfortunately, these problems rarely resemble the type of problems we actually encounter in everyday life. In math books, you usually are told exactly which formula or procedure to use, and are given exactly the information you need to answer the question. In real life, problem solving requires identifying an appropriate formula or procedure, and determining what information you will need (and won’t need) to answer the question.In this chapter, we will review several basic but powerful algebraic ideas: percents, rates, and proportions. We will then focus on the problem solving process, and explore how to use these ideas to solve problems where we don’t have perfect information.PercentsIn the 2004 vice-presidential debates, Edwards's claimed that US forces have suffered "90% of the coalition casualties" in Iraq. Cheney disputed this, saying that in fact Iraqi security forces and coalition allies "have taken almost 50 percent" of the casualties[1]. Who is correct? How can we make sense of these numbers?Percent literally means “per 100,” or “parts per hundred.” When we write 40%, this is equivalent to the fraction [pic] or the decimal 0.40. Notice that 80 out of 200 and 10 out of 25 are also 40%, since [pic].Example 1243 people out of 400 state that they like dogs. What percent is this?[pic]. This is 60.75%.Notice that the percent can be found from the equivalent decimal by moving the decimal point two places to the right.Example 2Write each as a percent: a) [pic] b) 0.02 c) 2.35a) [pic] = 25% b) 0.02 = 2% c) 2.35 = 235% Percents If we have a part that is some percent of a whole, then [pic], or equivalently, [pic] To do the calculations, we write the percent as a decimal.Example 3The sales tax in a town is 9.4%. How much tax will you pay on a $140 purchase?Here, $140 is the whole, and we want to find 9.4% of $140. We start by writing the percent as a decimal by moving the decimal point two places to the left (which is equivalent to dividing by 100). We can then compute:[pic] in tax.Example 4In the news, you hear “tuition is expected to increase by 7% next year.” If tuition this year was $1200 per quarter, what will it be next year?The tuition next year will be the current tuition plus an additional 7%, so it will be 107% of this year’s tuition:$1200(1.07) = $1284.Alternatively, we could have first calculated 7% of $1200: $1200(0.07) = $84.Notice this is not the expected tuition for next year (we could only wish). Instead, this is the expected increase, so to calculate the expected tuition, we’ll need to add this change to the previous year’s tuition:$1200 + $84 = $1284.Try it Now 1A TV originally priced at $799 is on sale for 30% off. There is then a 9.2% sales tax. Find the price after including the discount and sales tax.Example 5The value of a car dropped from $7400 to $6800 over the last year. What percent decrease is this?To compute the percent change, we first need to find the dollar value change: $6800-$7400 = -$600. Often we will take the absolute value of this amount, which is called the absolute change: [pic].Since we are computing the decrease relative to the starting value, we compute this percent out of $7400:[pic] decrease. This is called a relative change. Absolute and Relative Change Given two quantities, Absolute change = [pic] Relative change: [pic] Absolute change has the same units as the original quantity. Relative change gives a percent change. The starting quantity is called the base of the percent change.The base of a percent is very important. For example, while Nixon was president, it was argued that marijuana was a “gateway” drug, claiming that 80% of marijuana smokers went on to use harder drugs like cocaine. The problem is, this isn’t true. The true claim is that 80% of harder drug users first smoked marijuana. The difference is one of base: 80% of marijuana smokers using hard drugs, vs. 80% of hard drug users having smoked marijuana. These numbers are not equivalent. As it turns out, only one in 2,400 marijuana users actually go on to use harder drugs[2].Example 6There are about 75 QFC supermarkets in the U.S. Albertsons has about 215 stores. Compare the size of the two companies.When we make comparisons, we must ask first whether an absolute or relative comparison. The absolute difference is 215 – 75 = 140. From this, we could say “Albertsons has 140 more stores than QFC.” However, if you wrote this in an article or paper, that number does not mean much. The relative difference may be more meaningful. There are two different relative changes we could calculate, depending on which store we use as the base:Using QFC as the base, [pic].This tells us Albertsons is 186.7% larger than QFC.Using Albertsons as the base, [pic].This tells us QFC is 65.1% smaller than Albertsons.Notice both of these are showing percent differences. We could also calculate the size of Albertsons relative to QFC: [pic], which tells us Albertsons is 2.867 times the size of QFC. Likewise, we could calculate the size of QFC relative to Albertsons: [pic], which tells us that QFC is 34.9% of the size of Albertsons.Example 7Suppose a stock drops in value by 60% one week, then increases in value the next week by 75%. Is the value higher or lower than where it started?To answer this question, suppose the value started at $100. After one week, the value dropped by 60%:$100 - $100(0.60) = $100 - $60 = $40.In the next week, notice that base of the percent has changed to the new value, $40. Computing the 75% increase:$40 + $40(0.75) = $40 + $30 = $70.In the end, the stock is still $30 lower, or [pic]30% lower, valued than it started.Try it Now 2The U.S. federal debt at the end of 2001 was $5.77 trillion, and grew to $6.20 trillion by the end of 2002. At the end of 2005 it was $7.91 trillion, and grew to $8.45 trillion by the end of 2006[3]. Calculate the absolute and relative increase for 2001-2002 and 2005-2006. Which year saw a larger increase in federal debt?Example 8A Seattle Times article on high school graduation rates reported “The number of schools graduating 60 percent or fewer students in four years – sometimes referred to as “dropout factories” – decreased by 17 during that time period. The number of kids attending schools with such low graduation rates was cut in half.”a) Is the “decrease by 17” number a useful comparison?b) Considering the last sentence, can we conclude that the number of “dropout factories” was originally 34?a) This number is hard to evaluate, since we have no basis for judging whether this is a larger or small change. If the number of “dropout factories” dropped from 20 to 3, that’d be a very significant change, but if the number dropped from 217 to 200, that’d be less of an improvement.b) The last sentence provides relative change which helps put the first sentence in perspective. We can estimate that the number of “dropout factories” was probably previously around 34. However, it’s possible that students simply moved schools rather than the school improving, so that estimate might not be fully accurate.Example 9In the 2004 vice-presidential debates, Edwards's claimed that US forces have suffered "90% of the coalition casualties" in Iraq. Cheney disputed this, saying that in fact Iraqi security forces and coalition allies "have taken almost 50 percent" of the casualties. Who is correct?Without more information, it is hard for us to judge who is correct, but we can easily conclude that these two percents are talking about different things, so one does not necessarily contradict the other. Edward’s claim was a percent with coalition forces as the base of the percent, while Cheney’s claim was a percent with both coalition and Iraqi security forces as the base of the percent. It turns out both statistics are in fact fairly accurate.Try it Now 3In the 2012 presidential elections, one candidate argued that “the president’s plan will cut $716 billion from Medicare, leading to fewer services for seniors,” while the other candidate rebuts that “our plan does not cut current spending and actually expands benefits for seniors, while implementing cost saving measures.” Are these claims in conflict, in agreement, or not comparable because they’re talking about different things?We’ll wrap up our review of percents with a couple cautions. First, when talking about a change of quantities that are already measured in percents, we have to be careful in how we describe the change.Example 10A politician’s support increases from 40% of voters to 50% of voters. Describe the change.We could describe this using an absolute change: [pic]. Notice that since the original quantities were percents, this change also has the units of percent. In this case, it is best to describe this as an increase of 10 percentage points.In contrast, we could compute the percent change: [pic] increase. This is the relative change, and we’d say the politician’s support has increased by 25%.Lastly, a caution against averaging percents.Example 11A basketball player scores on 40% of 2-point field goal attempts, and on 30% of 3-point of field goal attempts. Find the player’s overall field goal percentage.It is very tempting to average these values, and claim the overall average is 35%, but this is likely not correct, since most players make many more 2-point attempts than 3-point attempts. We don’t actually have enough information to answer the question. Suppose the player attempted 200 2-point field goals and 100 3-point field goals. Then they made 200(0.40) = 80 2-point shots and 100(0.30) = 30 3-point shots. Overall, they made 110 shots out of 300, for a [pic] = 36.7% overall field goal percentage.Proportions and RatesIf you wanted to power the city of Seattle using wind power, how many windmills would you need to install? Questions like these can be answered using rates and proportions. Rates A rate is the ratio (fraction) of two quantities. A unit rate is a rate with a denominator of one.Example 12Your car can drive 300 miles on a tank of 15 gallons. Express this as a rate.Expressed as a rate, [pic]. We can divide to find a unit rate: [pic], which we could also write as [pic], or just 20 miles per gallon. Proportion Equation A proportion equation is an equation showing the equivalence of two rates or ratios.Example 13Solve the proportion [pic] for the unknown value x.This proportion is asking us to find a fraction with denominator 6 that is equivalent to the fraction [pic]. We can solve this by multiplying both sides of the equation by 6, giving[pic].Example 14A map scale indicates that ½ inch on the map corresponds with 3 real miles. How many miles apart are two cities that are [pic] inches apart on the map?We can set up a proportion by setting equal two [pic] rates, and introducing a variable, x, to represent the unknown quantity – the mile distance between the cities.[pic] Multiply both sides by x and rewriting the mixed number[pic] Multiply both sides by 3[pic] Multiply both sides by 2 (or divide by ½)[pic] milesMany proportion problems can also be solved using dimensional analysis, the process of multiplying a quantity by rates to change the units.Example 15Your car can drive 300 miles on a tank of 15 gallons. How far can it drive on 40 gallons?We could certainly answer this question using a proportion: [pic].However, we earlier found that 300 miles on 15 gallons gives a rate of 20 miles per gallon. If we multiply the given 40 gallon quantity by this rate, the gallons unit “cancels” and we’re left with a number of miles:[pic]Notice if instead we were asked “how many gallons are needed to drive 50 miles?” we could answer this question by inverting the 20 mile per gallon rate so that the miles unit cancels and we’re left with gallons:[pic]Dimensional analysis can also be used to do unit conversions. Here are some unit conversions for reference. Unit Conversions Length 1 foot (ft) = 12 inches (in) 1 yard (yd) = 3 feet (ft) 1 mile = 5,280 feet 1000 millimeters (mm) = 1 meter (m) 100 centimeters (cm) = 1 meter 1000 meters (m) = 1 kilometer (km) 2.54 centimeters (cm) = 1 inch Weight and Mass 1 pound (lb) = 16 ounces (oz) 1 ton = 2000 pounds 1000 milligrams (mg) = 1 gram (g) 1000 grams = 1kilogram (kg) 1 kilogram = 2.2 pounds (on earth) Capacity 1 cup = 8 fluid ounces (fl oz)* 1 pint = 2 cups 1 quart = 2 pints = 4 cups 1 gallon = 4 quarts = 16 cups 1000 milliliters (ml) = 1 liter (L) *Fluid ounces are a capacity measurement for liquids. 1 fluid ounce ≈ 1 ounce (weight) for water only.Example 16A bicycle is traveling at 15 miles per hour. How many feet will it cover in 20 seconds?To answer this question, we need to convert 20 seconds into feet. If we know the speed of the bicycle in feet per second, this question would be simpler. Since we don’t, we will need to do additional unit conversions. We will need to know that 5280 ft = 1 mile. We might start by converting the 20 seconds into hours:[pic] Now we can multiply by the 15 miles/hr[pic] Now we can convert to feet[pic]We could have also done this entire calculation in one long set of products:[pic]Try it Now 4A 1000 foot spool of bare 12-gauge copper wire weighs 19.8 pounds. How much will 18 inches of the wire weigh, in ounces?Notice that with the miles per gallon example, if we double the miles driven, we double the gas used. Likewise, with the map distance example, if the map distance doubles, the real-life distance doubles. This is a key feature of proportional relationships, and one we must confirm before assuming two things are related proportionally.Example 17Suppose you’re tiling the floor of a 10 ft by 10 ft room, and find that 100 tiles will be needed. How many tiles will be needed to tile the floor of a 20 ft by 20 ft room?In this case, while the width the room has doubled, the area has quadrupled. Since the number of tiles needed corresponds with the area of the floor, not the width, 400 tiles will be needed. We could find this using a proportion based on the areas of the rooms:[pic]Other quantities just don’t scale proportionally at all.Example 18Suppose a small company spends $1000 on an advertising campaign, and gains 100 new customers from it. How many new customers should they expect if they spend $10,000?While it is tempting to say that they will gain 1000 new customers, it is likely that additional advertising will be less effective than the initial advertising. For example, if the company is a hot tub store, there are likely only a fixed number of people interested in buying a hot tub, so there might not even be 1000 people in the town who would be potential customers.Sometimes when working with rates, proportions, and percents, the process can be made more challenging by the magnitude of the numbers involved. Sometimes, large numbers are just difficult to comprehend.Example 19Compare the 2010 U.S. military budget of $683.7 billion to other quantities.Here we have a very large number, about $683,700,000,000 written out. Of course, imagining a billion dollars is very difficult, so it can help to compare it to other quantities.If that amount of money was used to pay the salaries of the 1.4 million Walmart employees in the U.S., each would earn over $488,000.There are about 300 million people in the U.S. The military budget is about $2,200 per person.If you were to put $683.7 billion in $100 bills, and count out 1 per second, it would take 216 years to finish counting it.Example 20Compare the electricity consumption per capita in China to the rate in Japan.To address this question, we will first need data. From the CIA[4] website we can find the electricity consumption in 2011 for China was 4,693,000,000,000 KWH (kilowatt-hours), or 4.693 trillion KWH, while the consumption for Japan was 859,700,000,000, or 859.7 billion KWH. To find the rate per capita (per person), we will also need the population of the two countries. From the World Bank[5], we can find the population of China is 1,344,130,000, or 1.344 billion, and the population of Japan is 127,817,277, or 127.8 million.Computing the consumption per capita for each country:China: [pic] ≈ 3491.5 KWH per personJapan: [pic] ≈ 6726 KWH per personWhile China uses more than 5 times the electricity of Japan overall, because the population of Japan is so much smaller, it turns out Japan uses almost twice the electricity per person compared to China.GeometryGeometric shapes, as well as area and volumes, can often be important in problem solving.Example 21You are curious how tall a tree is, but don’t have any way to climb it. Describe a method for determining the height.There are several approaches we could take. We’ll use one based on triangles, which requires that it’s a sunny day. Suppose the tree is casting a shadow, say 15 ft long. I can then have a friend help me measure my own shadow. Suppose I am 6 ft tall, and cast a 1.5 ft shadow. Since the triangle formed by the tree and its shadow has the same angles as the triangle formed by me and my shadow, these triangles are called similar triangles and their sides will scale proportionally. In other words, the ratio of height to width will be the same in both triangles. Using this, we can find the height of the tree, which we’ll denote by h:[pic]Multiplying both sides by 15, we get h = 60. The tree is about 60 ft tall.It may be helpful to recall some formulas for areas and volumes of a few basic shapes. Areas Rectangle Circle, radius r Area: [pic] Area: πr2 Perimeter: 2L + 2W Circumference = 2πr [pic] [pic] Volumes Rectangular Box Cylinder Volume: L·W·H Volume: πr2H [pic] [pic]Example 22If a 12 inch diameter pizza requires 10 ounces of dough, how much dough is needed for a 16 inch pizza?To answer this question, we need to consider how the weight of the dough will scale. The weight will be based on the volume of the dough. However, since both pizzas will be about the same thickness, the weight will scale with the area of the top of the pizza. We can find the area of each pizza using the formula for area of a circle, [pic]:A 12” pizza has radius 6 inches, so the area will be [pic] = about 113 square inches.A 16” pizza has radius 8 inches, so the area will be [pic] = about 201 square inches.Notice that if both pizzas were 1 inch thick, the volumes would be 113 in3 and 201 in3 respectively, which are at the same ratio as the areas. As mentioned earlier, since the thickness is the same for both pizzas, we can safely ignore it.We can now set up a proportion to find the weight of the dough for a 16” pizza:[pic] Multiply both sides by 201 [pic] = about 17.8 ounces of dough for a 16” pizza.It is interesting to note that while the diameter is [pic] = 1.33 times larger, the dough required, which scales with area, is 1.332 = 1.78 times larger.Example 23A company makes regular and jumbo marshmallows. The regular marshmallow has 25 calories. How many calories will the jumbo marshmallow have?We would expect the calories to scale with volume. Since the marshmallows have cylindrical shapes, we can use that formula to find the volume. From the grid in the image, we can estimate the radius and height of each marshmallow.The regular marshmallow appears to have a diameter of about 3.5 units, giving a radius of 1.75 units, and a height of about 3.5 units. The volume is about [pic].The jumbo marshmallow appears to have a diameter of about 5.5 units, giving a radius of 2.75 units, and a height of about 5 units. The volume is about [pic].We could now set up a proportion, or use rates. The regular marshmallow has 25 calories for 33.7 cubic units of volume. The jumbo marshmallow will have:[pic] 88.1 caloriesIt is interesting to note that while the diameter and height are about 1.5 times larger for the jumbo marshmallow, the volume and calories are about 1.53 = 3.375 times larger.Try it Now 5A website says that you’ll need 48 fifty-pound bags of sand to fill a sandbox that measure 8ft by 8ft by 1ft. How many bags would you need for a sandbox 6ft by 4ft by 1ft?Problem Solving and EstimatingFinally, we will bring together the mathematical tools we’ve reviewed, and use them to approach more complex problems. In many problems, it is tempting to take the given information, plug it into whatever formulas you have handy, and hope that the result is what you were supposed to find. Chances are, this approach has served you well in other math classes.This approach does not work well with real life problems. Instead, problem solving is best approached by first starting at the end: identifying exactly what you are looking for. From there, you then work backwards, asking “what information and procedures will I need to find this?” Very few interesting questions can be answered in one mathematical step; often times you will need to chain together a solution pathway, a series of steps that will allow you to answer the question. Problem Solving Process1. Identify the question you’re trying to answer.2. Work backwards, identifying the information you will need and the relationships you will use to answer that question.3. Continue working backwards, creating a solution pathway.4. If you are missing necessary information, look it up or estimate it. If you have unnecessary information, ignore it.5. Solve the problem, following your solution pathway.In most problems we work, we will be approximating a solution, because we will not have perfect information. We will begin with a few examples where we will be able to approximate the solution using basic knowledge from our lives.Example 24How many times does your heart beat in a year?This question is asking for the rate of heart beats per year. Since a year is a long time to measure heart beats for, if we knew the rate of heart beats per minute, we could scale that quantity up to a year. So the information we need to answer this question is heart beats per minute. This is something you can easily measure by counting your pulse while watching a clock for a minute.Suppose you count 80 beats in a minute. To convert this beats per year:[pic] 42,048,000 beats per yearExample 25How thick is a single sheet of paper? How much does it weigh?While you might have a sheet of paper handy, trying to measure it would be tricky. Instead we might imagine a stack of paper, and then scale the thickness and weight to a single sheet. If you’ve ever bought paper for a printer or copier, you probably bought a ream, which contains 500 sheets. We could estimate that a ream of paper is about 2 inches thick and weighs about 5 pounds. Scaling these down,[pic] = 0.004 inches per sheet[pic] = 0.01 pounds per sheet, or 0.16 ounces per sheet.Example 26A recipe for zucchini muffins states that it yields 12 muffins, with 250 calories per muffin. You instead decide to make mini-muffins, and the recipe yields 20 muffins. If you eat 4, how many calories will you consume?There are several possible solution pathways to answer this question. We will explore one.To answer the question of how many calories 4 mini-muffins will contain, we would want to know the number of calories in each mini-muffin. To find the calories in each mini-muffin, we could first find the total calories for the entire recipe, then divide it by the number of mini-muffins produced. To find the total calories for the recipe, we could multiply the calories per standard muffin by the number per muffin. Notice that this produces a multi-step solution pathway. It is often easier to solve a problem in small steps, rather than trying to find a way to jump directly from the given information to the solution.We can now execute our plan:[pic] = 3000 calories for the whole recipe[pic] gives 150 calories per mini-muffin[pic] totals 600 calories consumed.Example 27You need to replace the boards on your deck. About how much will the materials cost?There are two approaches we could take to this problem: 1) estimate the number of boards we will need and find the cost per board, or 2) estimate the area of the deck and find the approximate cost per square foot for deck boards. We will take the latter approach.For this solution pathway, we will be able to answer the question if we know the cost per square foot for decking boards and the square footage of the deck. To find the cost per square foot for decking boards, we could compute the area of a single board, and divide it into the cost for that board. We can compute the square footage of the deck using geometric formulas. So first we need information: the dimensions of the deck, and the cost and dimensions of a single deck board.Suppose that measuring the deck, it is rectangular, measuring 16 ft by 24 ft, for a total area of 384 ft2.From a visit to the local home store, you find that an 8 foot by 4 inch cedar deck board costs about $7.50. The area of this board, doing the necessary conversion from inches to feet, is:[pic] = 2.667 ft2. The cost per square foot is then[pic] = $2.8125 per ft2.This will allow us to estimate the material cost for the whole 384 ft2 deck[pic] = $1080 total cost.Of course, this cost estimate assumes that there is no waste, which is rarely the case. It is common to add at least 10% to the cost estimate to account for waste.Example 28Is it worth buying a Hyundai Sonata hybrid instead the regular Hyundai Sonata?To make this decision, we must first decide what our basis for comparison will be. For the purposes of this example, we’ll focus on fuel and purchase costs, but environmental impacts and maintenance costs are other factors a buyer might consider.It might be interesting to compare the cost of gas to run both cars for a year. To determine this, we will need to know the miles per gallon both cars get, as well as the number of miles we expect to drive in a year. From that information, we can find the number of gallons required from a year. Using the price of gas per gallon, we can find the running cost.From Hyundai’s website, the 2013 Sonata will get 24 miles per gallon (mpg) in the city, and 35 mpg on the highway. The hybrid will get 35 mpg in the city, and 40 mpg on the highway.An average driver drives about 12,000 miles a year. Suppose that you expect to drive about 75% of that in the city, so 9,000 city miles a year, and 3,000 highway miles a year.We can then find the number of gallons each car would require for the year.Sonata:[pic] = 460.7 gallonsHybrid:[pic] = 332.1 gallonsIf gas in your area averages about $3.50 per gallon, we can use that to find the running cost:Sonata: [pic] = $1612.45Hybrid: [pic] = $1162.35The hybrid will save $450.10 a year. The gas costs for the hybrid are about [pic] = 0.279 = 27.9% lower than the costs for the standard Sonata.While both the absolute and relative comparisons are useful here, they still make it hard to answer the original question, since “is it worth it” implies there is some tradeoff for the gas savings. Indeed, the hybrid Sonata costs about $25,850, compared to the base model for the regular Sonata, at $20,895.To better answer the “is it worth it” question, we might explore how long it will take the gas savings to make up for the additional initial cost. The hybrid costs $4965 more. With gas savings of $451.10 a year, it will take about 11 years for the gas savings to make up for the higher initial costs.We can conclude that if you expect to own the car 11 years, the hybrid is indeed worth it. If you plan to own the car for less than 11 years, it may still be worth it, since the resale value of the hybrid may be higher, or for other non-monetary reasons. This is a case where math can help guide your decision, but it can’t make it for you.Try it Now 6If traveling from Seattle, WA to Spokane WA for a three-day conference, does it make more sense to drive or fly?Try it Now Answers1. The sale price is $799(0.70) = $559.30. After tax, the price is $559.30(1.092) = $610.762. 2001-2002: Absolute change: $0.43 trillion. Relative change: 7.45% 2005-2006: Absolute change: $0.54 trillion. Relative change: 6.83% 2005-2006 saw a larger absolute increase, but a smaller relative increase.3. Without more information, it is hard to judge these arguments. This is compounded by the complexity of Medicare. As it turns out, the $716 billion is not a cut in current spending, but a cut in future increases in spending, largely reducing future growth in health care payments. In this case, at least the numerical claims in both statements could be considered at least partially true. Here is one source of more information if you’re interested: 4. [pic] ≈ 0.475 ouncesTry it Now Answers Continued5. The original sandbox has volume 64 ft3. The smaller sandbox has volume 24ft3. [pic] results in x = 18 bags.6. There is not enough information provided to answer the question, so we will have to make some assumptions, and look up some values.Assumptions:a) We own a car. Suppose it gets 24 miles to the gallon. We will only consider gas cost.b) We will not need to rent a car in Spokane, but will need to get a taxi from the airport to the conference hotel downtown and back.c) We can get someone to drop us off at the airport, so we don’t need to consider airport parking.d) We will not consider whether we will lose money by having to take time off work to drive.Values looked up (your values may be different)a) Flight cost: $184b) Taxi cost: $25 each way (estimate, according to hotel website)c) Driving distance: 280 miles each wayd) Gas cost: $3.79 a gallonCost for flying: $184 flight cost + $50 in taxi fares = $234.Cost for driving: 560 miles round trip will require 23.3 gallons of gas, costing $88.31.Based on these assumptions, driving is cheaper. However, our assumption that we only include gas cost may not be a good one. Tax law allows you deduct $0.55 (in 2012) for each mile driven, a value that accounts for gas as well as a portion of the car cost, insurance, maintenance, etc. Based on this number, the cost of driving would be $319.Exercises1. Out of 230 racers who started the marathon, 212 completed the race, 14 gave up, and 4 were disqualified. What percentage did not complete the marathon?2. Patrick left an $8 tip on a $50 restaurant bill. What percent tip is that?3. Ireland has a 23% VAT (value-added tax, similar to a sales tax). How much will the VAT be on a purchase of a €250 item?4. Employees in 2012 paid 4.2% of their gross wages towards social security (FICA tax), while employers paid another 6.2%. How much will someone earning $45,000 a year pay towards social security out of their gross wages?5. A project on was aiming to raise $15,000 for a precision coffee press. They ended up with 714 supporters, raising 557% of their goal. How much did they raise?6. Another project on Kickstarter for an iPad stylus raised 1,253% of their goal, raising a total of $313,490 from 7,511 supporters. What was their original goal?7. The population of a town increased from 3,250 in 2008 to 4,300 in 2010. Find the absolute and relative (percent) increase.8. The number of CDs sold in 2010 was 114 million, down from 147 million the previous year[6]. Find the absolute and relative (percent) decrease.9. A company wants to decrease their energy use by 15%. a. If their electric bill is currently $2,200 a month, what will their bill be if they’re successful? b. If their next bill is $1,700 a month, were they successful? Why or why not?10. A store is hoping an advertising campaign will increase their number of customers by 30%. They currently have about 80 customers a day. a. How many customers will they have if their campaign is successful? b. If they increase to 120 customers a day, were they successful? Why or why not?11. An article reports “attendance dropped 6% this year, to 300.” What was the attendance before the drop?12. An article reports “sales have grown by 30% this year, to $200 million.” What were sales before the growth?13. The Walden University had 47,456 students in 2010, while Kaplan University had 77,966 students. Complete the following statements: a. Kaplan’s enrollment was ___% larger than Walden’s. b. Walden’s enrollment was ___% smaller than Kaplan’s. c. Walden’s enrollment was ___% of Kaplan’s.14. In the 2012 Olympics, Usain Bolt ran the 100m dash in 9.63 seconds. Jim Hines won the 1968 Olympic gold with a time of 9.95 seconds. a. Bolt’s time was ___% faster than Hines’. b. Hine’ time was ___% slower than Bolt’s. c. Hine’ time was ___% of Bolt’s.15. A store has clearance items that have been marked down by 60%. They are having a sale, advertising an additional 30% off clearance items. What percent of the original price do you end up paying?16. Which is better: having a stock that goes up 30% on Monday than drops 30% on Tuesday, or a stock that drops 30% on Monday and goes up 30% on Tuesday? In each case, what is the net percent gain or loss?17. Are these two claims equivalent, in conflict, or not comparable because they’re talking about different things? a. “16.3% of Americans are without health insurance”[7] b. “only 55.9% of adults receive employer provided health insurance”[8]18. Are these two claims equivalent, in conflict, or not comparable because they’re talking about different things? a. “We mark up the wholesale price by 33% to come up with the retail price” b. “The store has a 25% profit margin”19. Are these two claims equivalent, in conflict, or not comparable because they’re talking about different things? a. “Every year since 1950, the number of American children gunned down has doubled.” b. “The number of child gunshot deaths has doubled from 1950 to 1994.”20. Are these two claims equivalent, in conflict, or not comparable because they’re talking about different things?[9] a. “75 percent of the federal health care law’s taxes would be paid by those earning less than $120,000 a year” b. “76 percent of those who would pay the penalty [health care law’s taxes] for not having insurance in 2016 would earn under $120,000”21. Are these two claims equivalent, in conflict, or not comparable because they’re talking about different things? a. “The school levy is only a 0.1% increase of the property tax rate.” b. “This new levy is a 12% tax hike, raising our total rate to $9.33 per $1000 of value.”22. Are the values compared in this statement comparable or not comparable? “Guns have murdered more Americans here at home in recent years than have died on the battlefields of Iraq and Afghanistan. In support of the two wars, more than 6,500 American soldiers have lost their lives. During the same period, however, guns have been used to murder about 100,000 people on American soil”[10]23. A high school currently has a 30% dropout rate. They’ve been tasked to decrease that rate by 20%. Find the equivalent percentage point drop.24. A politician’s support grew from 42% by 3 percentage points to 45%. What percent (relative) change is this?25. Marcy has a 70% average in her class going into the final exam. She says "I need to get a 100% on this final so I can raise my score to 85%." Is she correct?26. Suppose you have one quart of water/juice mix that is 50% juice, and you add 2 quarts of juice. What percent juice is the final mix?27. Find a unit rate: You bought 10 pounds of potatoes for $4.28. Find a unit rate: Joel ran 1500 meters in 4 minutes, 45 seconds.29. Solve: [pic].30. Solve: [pic].31. A crepe recipe calls for 2 eggs, 1 cup of flour, and 1 cup of milk. How much flour would you need if you use 5 eggs?32. An 8ft length of 4 inch wide crown molding costs $14. How much will it cost to buy 40ft of crown molding?33. Four 3-megawatt wind turbines can supply enough electricity to power 3000 homes. How many turbines would be required to power 55,000 homes?34. A highway had a landslide, where 3,000 cubic yards of material fell on the road, requiring 200 dump truck loads to clear. On another highway, a slide left 40,000 cubic yards on the road. How many dump truck loads would be needed to clear this slide?35. Convert 8 feet to inches.36. Convert 6 kilograms to grams.37. A wire costs $2 per meter. How much will 3 kilometers of wire cost?38. Sugar contains 15 calories per teaspoon. How many calories are in 1 cup of sugar?39. A car is driving at 100 kilometers per hour. How far does it travel in 2 seconds?40. A chain weighs 10 pounds per foot. How many ounces will 4 inches weigh?41. The table below gives data on three movies. Gross earnings is the amount of money the movie brings in. Compare the net earnings (money made after expenses) for the three movies.[11]|Movie |Release Date |Budget |Gross earnings ||Saw |10/29/2004 |$1,200,000 |$103,096,345 ||Titanic |12/19/1997 |$200,000,000 |$1,842,879,955 ||Jurassic Park |6/11/1993 |$63,000,000 |$923,863,984 |42. For the movies in the previous problem, which provided the best return on investment?43. The population of the U.S. is about 309,975,000, covering a land area of 3,717,000 square miles. The population of India is about 1,184,639,000, covering a land area of 1,269,000 square miles. Compare the population densities of the two countries.44. The GDP (Gross Domestic Product) of China was $5,739 billion in 2010, and the GDP of Sweden was $435 billion. The population of China is about 1,347 million, while the population of Sweden is about 9.5 million. Compare the GDP per capita of the two countries.45. In June 2012, Twitter was reporting 400 million tweets per day. Each tweet can consist of up to 140 characters (letter, numbers, etc.). Create a comparison to help understand the amount of tweets in a year by imagining each character was a drop of water and comparing to filling something up.46. The photo sharing site Flickr had 2.7 billion photos in June 2012. Create a comparison to understand this number by assuming each picture is about 2 megabytes in size, and comparing to the data stored on other media like DVDs, iPods, or flash drives.47. Your chocolate milk mix says to use 4 scoops of mix for 2 cups of milk. After pouring in the milk, you start adding the mix, but get distracted and accidentally put in 5 scoops of mix. How can you adjust the mix if: a. There is still room in the cup? b. The cup is already full?48. A recipe for sabayon calls for 2 egg yolks, 3 tablespoons of sugar, and ¼ cup of white wine. After cracking the eggs, you start measuring the sugar, but accidentally put in 4 tablespoons of sugar. How can you compensate?49. The Deepwater Horizon oil spill resulted in 4.9 million barrels of oil spilling into the Gulf of Mexico. Each barrel of oil can be processed into about 19 gallons of gasoline. How many cars could this have fueled for a year? Assume an average car gets 20 miles to the gallon, and drives about 12,000 miles in a year.50. The store is selling lemons at 2 for $1. Each yields about 2 tablespoons of juice. How much will it cost to buy enough lemons to make a 9-inch lemon pie requiring ½ cup of lemon juice?51. A piece of paper can be made into a cylinder in two ways: by joining the short sides together, or by joining the long sides together[12]. Which cylinder would hold more? How much more?52. Which of these glasses contains more liquid? How much more?In the next 4 questions, estimate the values by making reasonable approximations for unknown values, or by doing some research to find reasonable values.53. Estimate how many gallons of water you drink in a year.54. Estimate how many times you blink in a day.55. How much does the water in a 6-person hot tub weigh?56. How many gallons of paint would be needed to paint a two-story house 40 ft long and 30 ft wide?57. During the landing of the Mars Science Laboratory Curiosity, it was reported that the signal from the rover would take 14 minutes to reach earth. Radio signals travel at the speed of light, about 186,000 miles per second. How far was Mars from Earth when Curiosity landed?58. It is estimated that a driver takes, on average, 1.5 seconds from seeing an obstacle to reacting by applying the brake or swerving. How far will a car traveling at 60 miles per hour travel (in feet) before the driver reacts to an obstacle?59. The flash of lightning travels at the speed of light, which is about 186,000 miles per second. The sound of lightning (thunder) travels at the speed of sound, which is about 750 miles per hour. a. If you see a flash of lightning, then hear the thunder 4 seconds later, how far away is the lightning? b. Now let’s generalize that result. Suppose it takes n seconds to hear the thunder after a flash of lightning. How far away is the lightning, in terms of n?60. Sound travels about 750 miles per hour. If you stand in a parking lot near a building and sound a horn, you will hear an echo. a. Suppose it takes about ½ a second to hear the echo. How far away is the building[13]? b. Now let’s generalize that result. Suppose it takes n seconds to hear the echo. How far away is the building, in terms of n?61. It takes an air pump 5 minutes to fill a twin sized air mattress (39 by 8.75 by 75 inches). How long will it take to fill a queen sized mattress (60 by 8.75 by 80 inches)?62. It takes your garden hose 20 seconds to fill your 2-gallon watering can. How long will it take to fill a. An inflatable pool measuring 3 feet wide, 8 feet long, and 1 foot deep.[14] b. A circular inflatable pool 13 feet in diameter and 3 feet deep.[15]63. You want to put a 2" thick layer of topsoil for a new 20'x30' garden.  The dirt store sells by the cubic yards. How many cubic yards will you need to order?64. A box of Jell-O costs $0.50, and makes 2 cups. How much would it cost to fill a swimming pool 4 feet deep, 8 feet wide, and 12 feet long with Jell-O? (1 cubic foot is about 7.5 gallons)65. You read online that a 15 ft by 20 ft brick patio would cost about $2,275 to have professionally installed. Estimate the cost of having a 18 by 22 ft brick patio installed.66. I was at the store, and saw two sizes of avocados being sold. The regular size sold for $0.88 each, while the jumbo ones sold for $1.68 each. Which is the better deal?67. The grocery store has bulk pecans on sale, which is great since you’re planning on making 10 pecan pies for a wedding. Your recipe calls for 1¾ cups pecans per pie. However, in the bulk section there’s only a scale available, not a measuring cup. You run over to the baking aisle and find a bag of pecans, and look at the nutrition label to gather some info. How many pounds of pecans should you buy?68. Soda is often sold in 20 ounce bottles. The nutrition label for one of these bottles is shown to the right. A packet of sugar (the kind they have at restaurants for your coffee or tea) typically contain 4 grams of sugar in the U.S. Drinking a 20 oz soda is equivalent to eating how many packets of sugar?[16]For the next set of questions, first identify the information you need to answer the question, and then turn to the end of the section to find that information. The details may be imprecise; answer the question the best you can with the provided information. Be sure to justify your decision.69. You’re planning on making 6 meatloafs for a party. You go to the store to buy breadcrumbs, and see they are sold by the canister. How many canisters do you need to buy?70. Your friend wants to cover their car in bottle caps, like in this picture.[17] How many bottle caps are you going to need?71. You need to buy some chicken for dinner tonight. You found an ad showing that the store across town has it on sale for $2.99 a pound, which is cheaper than your usual neighborhood store, which sells it for $3.79 a pound. Is it worth the extra drive?72. I have an old gas furnace, and am considering replacing it with a new, high efficiency model. Is upgrading worth it?73. Janine is considering buying a water filter and a reusable water bottle rather than buying bottled water. Will doing so save her money?74. Marcus is considering going car-free to save money and be more environmentally friendly. Is this financially a good decision?For the next set of problems, research or make educated estimates for any unknown quantities needed to answer the question.75. You want to travel from Tacoma, WA to Chico, CA for a wedding. Compare the costs and time involved with driving, flying, and taking a train. Assume that if you fly or take the train you’ll need to rent a car while you’re there. Which option is best?76. You want to paint the walls of a 6ft by 9ft storage room that has one door and one window. You want to put on two coats of paint. How many gallons and/or quarts of paint should you buy to paint the room as cheaply as possible?77. A restaurant in New York tiled their floor with pennies[18]. Just for the materials, is this more expensive than using a more traditional material like ceramic tiles? If each penny has to be laid by hand, estimate how long it would take to lay the pennies for a 12ft by 10ft room. Considering material and labor costs, are pennies a cost-effective replacement for ceramic tiles?78. You are considering taking up part of your back yard and turning it into a vegetable garden, to grow broccoli, tomatoes, and zucchini. Will doing so save you money, or cost you more than buying vegetables from the store?79. Barry is trying to decide whether to keep his 1993 Honda Civic with 140,000 miles, or trade it in for a used 2008 Honda Civic. Consider gas, maintenance, and insurance costs in helping him make a decision.80. Some people claim it costs more to eat vegetarian, while some claim it costs less. Examine your own grocery habits, and compare your current costs to the costs of switching your diet (from omnivore to vegetarian or vice versa as appropriate). Which diet is more cost effective based on your eating habits?Info for the breadcrumbs questionHow much breadcrumbs does the recipe call for? It calls for 1½ cups of breadcrumbs.How many meatloafs does the recipe make? It makes 1 meatloaf.How many servings does that recipe make? It says it serves 8.How big is the canister? It is cylindrical, 3.5 inches across and 7 inches tall.What is the net weight of the contents of 1 canister? 15 ounces.How much does a cup of breadcrumbs weigh? I’m not sure, but maybe something from the nutritional label will help.How much does a canister cost? $2.39Info for bottle cap carWhat kind of car is that? A 1993 Honda Accord.How big is that car / what are the dimensions? Here is some details from MSN autos: Weight: 2800lb Length: 185.2 in Width: 67.1 in Height: 55.2 inHow much of the car was covered with caps? Everything but the windows and the underside.How big is a bottle cap? Caps are 1 inch in diameter.Info for chicken problemHow much chicken will you be buying? Four poundsHow far are the two stores? My neighborhood store is 2.2 miles away, and takes about 7 minutes. The store across town is 8.9 miles away, and takes about 25 minutes.What kind of mileage does your car get? It averages about 24 miles per gallon in the city.How many gallons does your car hold? About 14 gallonsHow much is gas? About $3.69/gallon right now.Info for furnace problemHow efficient is the current furnace? It is a 60% efficient furnace.How efficient is the new furnace? It is 94% efficient.What is your gas bill? Here is the history for 2 years:[pic]How much do you pay for gas? There is $10.34 base charge, plus $0.39097 per Therm for a delivery charge, and $0.65195 per Therm for cost of gas.How much gas do you use? Here is the history for 2 years:[pic]How much does the new furnace cost? It will cost $7,450.How long do you plan to live in the house? Probably at least 15 years.Info for water filter problemHow much water does Janine drink in a day? She normally drinks 3 bottles a day, each 16.9 ounces.How much does a bottle of water cost? She buys 24-packs of 16.9 ounce bottles for $3.99.How much does a reusable water bottle cost? About $10.How long does a reusable water bottle last? Basically forever (or until you lose it).How much does a water filter cost? How much water will they filter? • A faucet-mounted filter costs about $28. Refill filters cost about $33 for a 3-pack. The box says each filter will filter up to 100 gallons (378 liters) • A water filter pitcher costs about $22. Refill filters cost about $20 for a 4-pack. The box says each filter lasts for 40 gallons or 2 months • An under-sink filter costs $130. Refill filters cost about $60 each. The filter lasts for 500 gallons.Info for car-free problemWhere does Marcus currently drive? He: • Drives to work 5 days a week, located 4 miles from his house. • Drives to the store twice a week, located 7 miles from his house. • Drives to other locations on average 5 days a week, with locations ranging from 1 mile to 20 miles. • Drives to his parent’s house 80 miles away once a month.How will he get to these locations without a car? • For work, he can walk when it’s sunny and he gets up early enough. Otherwise he can take a bus, which takes about 20 minutes • For the store, he can take a bus, which takes about 35 minutes. • Some of the other locations he can bus to. Sometimes he’ll be able to get a friend to pick him up. A few locations he is able to walk to. A couple locations are hard to get to by bus, but there is a ZipCar (short term car rental) location within a few blocks. • He’ll need to get a ZipCar to visit his parents.How much does gas cost? About $3.69/gallon.How much does he pay for insurance and maintenance? • He pays $95/month for insurance. • He pays $30 every 3 months for an oil change, and has averaged about $300/year for other maintenance costs.How much is he paying for the car? • He’s paying $220/month on his car loan right now, and has 3 years left on the loan. • If he sold the car, he’d be able to make enough to pay off the loan. • If he keeps the car, he’s planning on trading the car in for a newer model in a couple years.What mileage does his car get? About 26 miles per gallon on average.How much does a bus ride cost? $2.50 per trip, or $90 for an unlimited monthly pass.How much does a ZipCar rental cost? • The “occasional driving plan”: $25 application fee and $60 annual fee, with no monthly commitment. Monday-Thursday the cost is $8/hour, or $72 per day. Friday-Sunday the cost is $8/hour or $78/day. Gas, insurance, and 180 miles are included in the cost. Additional miles are $0.45/mile. • The “extra value plan”: Same as above, but with a $50 monthly commitment, getting you a 10% discount on the usage costs.Extension: TaxesGovernments collect taxes to pay for the services they provide. In the United States, federal income taxes help fund the military, the environmental protection agency, and thousands of other programs. Property taxes help fund schools. Gasoline taxes help pay for road improvements. While very few people enjoy paying taxes, they are necessary to pay for the services we all depend upon.Taxes can be computed in a variety of ways, but are typically computed as a percentage of a sale, of one’s income, or of one’s assets.Example 1The sales tax rate in a city is 9.3%. How much sales tax will you pay on a $140 purchase?The sales tax will be 9.3% of $140. To compute this, we multiply $140 by the percent written as a decimal: $140(0.093) = $13.02.When taxes are not given as a fixed percentage rate, sometimes it is necessary to calculate the effective rate. Effective rate The effective tax rate is the equivalent percent rate of the tax paid out of the dollar amount the tax is based on.Example 2Joan paid $3,200 in property taxes on her house valued at $215,000 last year. What is the effective tax rate?We can compute the equivalent percentage: 3200/215000 = 0.01488, or about 1.49% effective rate.Taxes are often referred to as progressive, regressive, or flat. Tax categories A flat tax, or proportional tax, charges a constant percentage rate. A progressive tax increases the percent rate as the base amount increases. A regressive tax decreases the percent rate as the base amount increases.Example 3The United States federal income tax on earned wages is an example of a progressive tax. People with a higher wage income pay a higher percent tax on their income.For a single person in 2011, adjusted gross income (income after deductions) under $8,500 was taxed at 10%. Income over $8,500 but under $34,500 was taxed at 15%.A person earning $10,000 would pay 10% on the portion of their income under $8,500, and 15% on the income over $8,500, so they’d pay: 8500(0.10) = 850 10% of $8500 1500(0.15) = 225 15% of the remaining $1500 of income Total tax: = $1075The effective tax rate paid is 1075/10000 = 10.75%A person earning $30,000 would also pay 10% on the portion of their income under $8,500, and 15% on the income over $8,500, so they’d pay: 8500(0.10) = 850 10% of $8500 21500(0.15) = 3225 15% of the remaining $21500 of income Total tax: = $4075The effective tax rate paid is 4075/30000 = 13.58%.Notice that the effective rate has increased with income, showing this is a progressive tax.Example 4A gasoline tax is a flat tax when considered in terms of consumption, a tax of, say, $0.30 per gallon is proportional to the amount of gasoline purchased. Someone buying 10 gallons of gas at $4 a gallon would pay $3 in tax, which is $3/$40 = 7.5%. Someone buying 30 gallons of gas at $4 a gallon would pay $9 in tax, which is $9/$120 = 7.5%, the same effective rate.However, in terms of income, a gasoline tax is often considered a regressive tax. It is likely that someone earning $30,000 a year and someone earning $60,000 a year will drive about the same amount. If both pay $60 in gasoline taxes over a year, the person earning $30,000 has paid 0.2% of their income, while the person earning $60,000 has paid 0.1% of their income in gas taxes.Try it Now 1A sales tax is a fixed percentage tax on a person’s purchases. Is this a flat, progressive, or regressive tax?Try it Now Answers1. While sales tax is a flat percentage rate, it is often considered a regressive tax for the same reasons as the gasoline tax.Income TaxationMany people have proposed various revisions to the income tax collection in the United States. Some, for example, have claimed that a flat tax would be fairer. Others call for revisions to how different types of income are taxed, since currently investment income is taxed at a different rate than wage income.The following two projects will allow you to explore some of these ideas and draw your own conclusions.Project 1: Flat tax, Modified Flat Tax, and Progressive Tax.Imagine the country is made up of 100 households. The federal government needs to collect $800,000 in income taxes to be able to function. The population consists of 6 groups:Group A: 20 households that earn $12,000 eachGroup B: 20 households that earn $29,000 eachGroup C: 20 households that earn $50,000 eachGroup D: 20 households that earn $79,000 eachGroup E: 15 households that earn $129,000 eachGroup F: 5 households that earn $295,000 eachThis scenario is roughly proportional to the actual United States population and tax needs. We are going to determine new income tax rates.The first proposal we’ll consider is a flat tax – one where every income group is taxed at the same percentage tax rate.1) Determine the total income for the population (all 100 people together)2) Determine what flat tax rate would be necessary to collect enough money.The second proposal we’ll consider is a modified flat-tax plan, where everyone only pays taxes on any income over $20,000. So, everyone in group A will pay no taxes. Everyone in group B will pay taxes only on $9,000.3) Determine the total taxable income for the whole population4) Determine what flat tax rate would be necessary to collect enough money in this modified system5) Complete this table for both the plans| | |Flat Tax Plan |Modified Flat Tax Plan ||Group |Income per household|Income tax per |Income after taxes |Income tax per household|Income after taxes || | |household | | | ||A |$12,000 | | | | ||B |$29,000 | | | | ||C |$50,000 | | | | ||D |$79,000 | | | | ||E |$129,000 | | | | ||F |$295,000 | | | | |The third proposal we’ll consider is a progressive tax, where lower income groups are taxed at a lower percent rate, and higher income groups are taxed at a higher percent rate. For simplicity, we’re going to assume that a household is taxed at the same rate on all their income.6) Set progressive tax rates for each income group to bring in enough money. There is no one right answer here – just make sure you bring in enough money!|Group |Income per household|Tax rate (%) |Income tax per |Total tax collected for |Income after taxes per || | | |household |all households |household ||A |$12,000 | | | | ||B |$29,000 | | | | ||C |$50,000 | | | | ||D |$79,000 | | | | ||E |$129,000 | | | | ||F |$295,000 | | | | || | | | |This better total to | || | | | |$800,000 | |7) Discretionary income is the income people have left over after paying for necessities like rent, food, transportation, etc. The cost of basic expenses does increase with income, since housing and car costs are higher, however usually not proportionally. For each income group, estimate their essential expenses, and calculate their discretionary income. Then compute the effective tax rate for each plan relative to discretionary income rather than income.|Group |Income per |Discretionary Income |Effective rate, flat |Effective rate, modified|Effective rate, || |household |(estimated) | | |progressive ||A |$12,000 | | | | ||B |$29,000 | | | | ||C |$50,000 | | | | ||D |$79,000 | | | | ||E |$129,000 | | | | ||F |$295,000 | | | | |8) Which plan seems the most fair to you? Which plan seems the least fair to you? Why?Project 2: Calculating Taxes.Visit , and download the most recent version of forms 1040, and schedules A, B, C, and D.Scenario 1: Calculate the taxes for someone who earned $60,000 in standard wage income (W-2 income), has no dependents, and takes the standard deduction.Scenario 2: Calculate the taxes for someone who earned $20,000 in standard wage income, $40,000 in qualified dividends, has no dependents, and takes the standard deduction. (Qualified dividends are earnings on certain investments such as stocks.)Scenario 3: Calculate the taxes for someone who earned $60,000 in small business income, has no dependents, and takes the standard deduction.Based on these three scenarios, what are your impressions of how the income tax system treats these different forms of income (wage, dividends, and business income)?Scenario 4: To get a more realistic sense for calculating taxes, you’ll need to consider itemized deductions. Calculate the income taxes for someone with the income and expenses listed below. Married with 2 children, filing jointly Wage income: $50,000 combined Paid sales tax in Washington State Property taxes paid: $3200 Home mortgage interest paid: $4800 Charitable gifts: $1200-----------------------[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] !")*fghoÙÚêëìíCDTUVW¯°ÀÁÂÃÖMNOwxˆ‰Š‹¤¥µüõüëüæÞæüÖü˾ÖüÖü³¦ÖüÖü›ŽÖü‡ü[11] [12] [13] [14] [15] [16] [17] Photo credit: , CC-BY[18] -----------------------LWradiusWLHHrPhoto courtesy Christopher DanielsonNutrition FactsServing Size: 1 cup, halves (99 g)Servings per Container: about 2|Amount Per Serving ||Calories 684 Calories from Fat 596 || % Daily Value* ||Total Fat 71g 110% || Saturated Fat 6g 31% || Trans Fat ||Cholesterol 0mg 0% |Nutrition FactsServing Size: 8 fl oz (240 mL)Servings Per Container: about 2.5|Amount Per Serving ||Calories 110 || % Daily Value* ||Total Fat 0g 0% ||Sodium 70mg 3% ||Total Carbohydrate 31g 10% || Sugars 30g ||Protein 0g |Nutrition FactsServing Size: 1/3 cup (30g)Servings per Container: about 14|Amount Per Serving ||Calories 110 Calories from Fat 15 || % Daily Value* ||Total Fat 1.5g 2% | ................

................

In order to avoid copyright disputes, this page is only a partial summary.

Online Preview   Download


Page 3

[MS-RDPERP]: Remote Desktop Protocol: Remote Programs Virtual Channel ExtensionIntellectual Property Rights Notice for Open Specifications DocumentationTechnical Documentation. Microsoft publishes Open Specifications documentation (“this documentation”) for protocols, file formats, data portability, computer languages, and standards support. Additionally, overview documents cover inter-protocol relationships and interactions. Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you can make copies of it in order to develop implementations of the technologies that are described in this documentation and can distribute portions of it in your implementations that use these technologies or in your documentation as necessary to properly document the implementation. You can also distribute in your implementation, with or without modification, any schemas, IDLs, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications documentation. No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. Patents. Microsoft has patents that might cover your implementations of the technologies described in the Open Specifications documentation. Neither this notice nor Microsoft's delivery of this documentation grants any licenses under those patents or any other Microsoft patents. However, a given Open Specifications document might be covered by the Microsoft Open Specifications Promise or the Microsoft Community Promise. If you would prefer a written license, or if the technologies described in this documentation are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting iplg@. License Programs. To see all of the protocols in scope under a specific license program and the associated patents, visit the Patent Map. Trademarks. The names of companies and products contained in this documentation might be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit trademarks. Fictitious Names. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events that are depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than as specifically described above, whether by implication, estoppel, or otherwise. Tools. The Open Specifications documentation does not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments, you are free to take advantage of them. Certain Open Specifications documents are intended for use in conjunction with publicly available standards specifications and network programming art and, as such, assume that the reader either is familiar with the aforementioned material or has immediate access to it.Support. For questions and support, please contact dochelp@. Revision SummaryDateRevision HistoryRevision ClassComments3/2/20070.01NewVersion 0.01 release7/3/20071.0MajorMLonghorn+907/20/20071.0.1EditorialChanged language and formatting in the technical content.8/10/20071.0.2EditorialChanged language and formatting in the technical content.9/28/20071.0.3EditorialChanged language and formatting in the technical content.10/23/20072.0MajorAdded new normative references.11/30/20072.1MinorCorrected some section numbering.1/25/20082.1.1EditorialChanged language and formatting in the technical content.3/14/20083.0MajorUpdated and revised the technical content.5/16/20083.0.1EditorialChanged language and formatting in the technical content.6/20/20084.0MajorUpdated and revised the technical content.7/25/20084.0.1EditorialChanged language and formatting in the technical content.8/29/20084.0.2EditorialChanged language and formatting in the technical content.10/24/20084.0.3EditorialChanged language and formatting in the technical content.12/5/20085.0MajorUpdated and revised the technical content.1/16/20095.0.1EditorialChanged language and formatting in the technical content.2/27/20095.0.2EditorialChanged language and formatting in the technical content.4/10/20095.1MinorClarified the meaning of the technical content.5/22/20096.0MajorUpdated and revised the technical content.7/2/20096.0.1EditorialChanged language and formatting in the technical content.8/14/20096.0.2EditorialChanged language and formatting in the technical content.9/25/20096.1MinorClarified the meaning of the technical content.11/6/20096.1.1EditorialChanged language and formatting in the technical content.12/18/20097.0MajorUpdated and revised the technical content.1/29/20108.0MajorUpdated and revised the technical content.3/12/20108.0.1EditorialChanged language and formatting in the technical content.4/23/20109.0MajorUpdated and revised the technical content.6/4/201010.0MajorUpdated and revised the technical content.7/16/201011.0MajorUpdated and revised the technical content.8/27/201011.1MinorClarified the meaning of the technical content.10/8/201011.1NoneNo changes to the meaning, language, or formatting of the technical content.11/19/201011.1NoneNo changes to the meaning, language, or formatting of the technical content.1/7/201111.1NoneNo changes to the meaning, language, or formatting of the technical content.2/11/201112.0MajorUpdated and revised the technical content.3/25/201113.0MajorUpdated and revised the technical content.5/6/201113.0NoneNo changes to the meaning, language, or formatting of the technical content.6/17/201113.1MinorClarified the meaning of the technical content.9/23/201114.0MajorUpdated and revised the technical content.12/16/201115.0MajorUpdated and revised the technical content.3/30/201215.0NoneNo changes to the meaning, language, or formatting of the technical content.7/12/201215.0NoneNo changes to the meaning, language, or formatting of the technical content.10/25/201215.0NoneNo changes to the meaning, language, or formatting of the technical content.1/31/201315.0NoneNo changes to the meaning, language, or formatting of the technical content.8/8/201316.0MajorUpdated and revised the technical content.11/14/201317.0MajorUpdated and revised the technical content.2/13/201418.0MajorUpdated and revised the technical content.5/15/201418.0NoneNo changes to the meaning, language, or formatting of the technical content.6/30/201519.0MajorSignificantly changed the technical content.10/16/201520.0MajorSignificantly changed the technical content.3/2/201621.0MajorSignificantly changed the technical content.7/14/201622.0MajorSignificantly changed the technical content.6/1/201723.0MajorSignificantly changed the technical content.9/15/201724.0MajorSignificantly changed the technical content.12/1/201725.0MajorSignificantly changed the technical content.3/16/201826.0MajorSignificantly changed the technical content.9/12/201827.0MajorSignificantly changed the technical content.9/23/201928.0MajorSignificantly changed the technical content.3/4/202029.0MajorSignificantly changed the technical content.Table of ContentsTOC \o "1-9" \h \z1Introduction PAGEREF _Toc33698379 \h 111.1Glossary PAGEREF _Toc33698380 \h 111.2References PAGEREF _Toc33698381 \h 121.2.1Normative References PAGEREF _Toc33698382 \h 131.2.2Informative References PAGEREF _Toc33698383 \h 131.3Overview PAGEREF _Toc33698384 \h 131.3.1Relationship to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification PAGEREF _Toc33698385 \h 141.3.2Message Flows PAGEREF _Toc33698386 \h 141.3.2.1RAIL Session Connection PAGEREF _Toc33698387 \h 141.3.2.2RAIL Session Disconnection and Reconnection PAGEREF _Toc33698388 \h 151.3.2.3RAIL Server/Client Synchronization PAGEREF _Toc33698389 \h 151.3.2.4RAIL Virtual Channel Messages PAGEREF _Toc33698390 \h 161.3.2.5RAIL Local Move/Resize PAGEREF _Toc33698391 \h 161.3.3Enhanced RemoteApp PAGEREF _Toc33698392 \h 171.3.4Window Resize Margins PAGEREF _Toc33698393 \h 181.4Relationship to Other Protocols PAGEREF _Toc33698394 \h 181.5Prerequisites/Preconditions PAGEREF _Toc33698395 \h 181.6Applicability Statement PAGEREF _Toc33698396 \h 181.7Versioning and Capability Negotiation PAGEREF _Toc33698397 \h 191.8Vendor-Extensible Fields PAGEREF _Toc33698398 \h 191.9Standards Assignments PAGEREF _Toc33698399 \h 192Messages PAGEREF _Toc33698400 \h 202.1Transport PAGEREF _Toc33698401 \h 202.2Message Syntax PAGEREF _Toc33698402 \h 202.2.1Updates to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification PAGEREF _Toc33698403 \h 202.2.1.1Capability Sets PAGEREF _Toc33698404 \h 202.2.1.1.1Remote Programs Capability Set PAGEREF _Toc33698405 \h 202.2.1.1.2Window List Capability Set PAGEREF _Toc33698406 \h 222.2.1.2Common Structures PAGEREF _Toc33698407 \h 232.2.1.2.1Unicode String (UNICODE_STRING) PAGEREF _Toc33698408 \h 232.2.1.2.2Rectangle (TS_RECTANGLE_16) PAGEREF _Toc33698409 \h 232.2.1.2.3Icon Info (TS_ICON_INFO) PAGEREF _Toc33698410 \h 232.2.1.2.4Cached Icon Info (TS_CACHED_ICON_INFO) PAGEREF _Toc33698411 \h 242.2.1.3Windowing Alternate Secondary Drawing Orders PAGEREF _Toc33698412 \h 252.2.1.3.1Window Information PAGEREF _Toc33698413 \h 252.2.1.3.1.1Common Header (TS_WINDOW_ORDER_HEADER) PAGEREF _Toc33698414 \h 252.2.1.3.1.2Orders PAGEREF _Toc33698415 \h 252.2.1.3.1.2.1New or Existing Window PAGEREF _Toc33698416 \h 252.2.1.3.1.2.2Window Icon PAGEREF _Toc33698417 \h 332.2.1.3.1.2.3Cached Icon PAGEREF _Toc33698418 \h 332.2.1.3.1.2.4Deleted Window PAGEREF _Toc33698419 \h 342.2.1.3.2Notification Icon Information PAGEREF _Toc33698420 \h 352.2.1.3.2.1Common Header (TS_NOTIFYICON_ORDER_HEADER) PAGEREF _Toc33698421 \h 352.2.1.3.2.2Orders PAGEREF _Toc33698422 \h 352.2.1.3.2.2.1New or Existing Notification Icons PAGEREF _Toc33698423 \h 352.2.1.3.2.2.2Deleted Notification Icons PAGEREF _Toc33698424 \h 382.2.1.3.2.2.3Notification Icon Balloon Tooltip (TS_NOTIFY_ICON_INFOTIP) PAGEREF _Toc33698425 \h 382.2.1.3.3Desktop Information PAGEREF _Toc33698426 \h 392.2.1.3.3.1Common Header (TS_DESKTOP_ORDER_HEADER) PAGEREF _Toc33698427 \h 392.2.1.3.3.2Orders PAGEREF _Toc33698428 \h 392.2.1.3.3.2.1Actively Monitored Desktop PAGEREF _Toc33698429 \h 402.2.1.3.3.2.2Non-Monitored Desktop PAGEREF _Toc33698430 \h 412.2.2Static Virtual Channel Protocol PAGEREF _Toc33698431 \h 412.2.2.1Common Header (TS_RAIL_PDU_HEADER) PAGEREF _Toc33698432 \h 412.2.2.2Initialization Messages PAGEREF _Toc33698433 \h 432.2.2.2.1Handshake PDU (TS_RAIL_ORDER_HANDSHAKE) PAGEREF _Toc33698434 \h 432.2.2.2.2Client Information PDU (TS_RAIL_ORDER_CLIENTSTATUS) PAGEREF _Toc33698435 \h 432.2.2.2.3HandshakeEx PDU (TS_RAIL_ORDER_HANDSHAKE_EX) PAGEREF _Toc33698436 \h 442.2.2.3Program Launching Messages PAGEREF _Toc33698437 \h 452.2.2.3.1Client Execute PDU (TS_RAIL_ORDER_EXEC) PAGEREF _Toc33698438 \h 452.2.2.3.2Server Execute Result PDU (TS_RAIL_ORDER_EXEC_RESULT) PAGEREF _Toc33698439 \h 472.2.2.4Local Client System Parameters Update Messages PAGEREF _Toc33698440 \h 482.2.2.4.1Client System Parameters Update PDU (TS_RAIL_ORDER_SYSPARAM) PAGEREF _Toc33698441 \h 482.2.2.4.2High Contrast System Information Structure (TS_HIGHCONTRAST) PAGEREF _Toc33698442 \h 502.2.2.4.3Filter Keys System Information Structure (TS_FILTERKEYS) PAGEREF _Toc33698443 \h 512.2.2.4.4Toggle Keys System Information Structure (TS_TOGGLEKEYS) PAGEREF _Toc33698444 \h 522.2.2.4.5Sticky Keys System Information Structure (TS_STICKYKEYS) PAGEREF _Toc33698445 \h 532.2.2.5Server System Parameters Update Messages PAGEREF _Toc33698446 \h 542.2.2.5.1Server System Parameters Update PDU (TS_RAIL_ORDER_SYSPARAM) PAGEREF _Toc33698447 \h 542.2.2.6Local Client Event Messages PAGEREF _Toc33698448 \h 552.2.2.6.1Client Activate PDU (TS_RAIL_ORDER_ACTIVATE) PAGEREF _Toc33698449 \h 552.2.2.6.2Client System Menu PDU (TS_RAIL_ORDER_SYSMENU) PAGEREF _Toc33698450 \h 562.2.2.6.3Client System Command PDU (TS_RAIL_ORDER_SYSCOMMAND) PAGEREF _Toc33698451 \h 562.2.2.6.4Client Notify Event PDU (TS_RAIL_ORDER_NOTIFY_EVENT) PAGEREF _Toc33698452 \h 572.2.2.6.5Client Get Application ID PDU (TS_RAIL_ORDER_GET_APPID_REQ) PAGEREF _Toc33698453 \h 592.2.2.7Window Move Messages PAGEREF _Toc33698454 \h 592.2.2.7.1Server Min Max Info PDU (TS_RAIL_ORDER_MINMAXINFO) PAGEREF _Toc33698455 \h 592.2.2.7.2Server Move/Size Start PDU (TS_RAIL_ORDER_LOCALMOVESIZE) PAGEREF _Toc33698456 \h 602.2.2.7.3Server Move/Size End PDU (TS_RAIL_ORDER_LOCALMOVESIZE) PAGEREF _Toc33698457 \h 622.2.2.7.4Client Window Move PDU (TS_RAIL_ORDER_WINDOWMOVE) PAGEREF _Toc33698458 \h 632.2.2.7.5Client Window Snap PDU (TS_RAIL_ORDER_SNAP_ARRANGE) PAGEREF _Toc33698459 \h 642.2.2.8Server Application ID Response PAGEREF _Toc33698460 \h 652.2.2.8.1Server Get Application ID Response PDU (TS_RAIL_ORDER_GET_APPID_RESP) PAGEREF _Toc33698461 \h 652.2.2.8.2Server Get Application ID Extended Response PDU (TS_RAIL_ORDER_GET_APPID_RESP_EX) PAGEREF _Toc33698462 \h 662.2.2.9Language Bar Messages PAGEREF _Toc33698463 \h 662.2.2.9.1Language Bar Information PDU (TS_RAIL_ORDER_LANGBARINFO) PAGEREF _Toc33698464 \h 662.2.2.10Language Sync Messages PAGEREF _Toc33698465 \h 682.2.2.10.1Language Profile Information PDU (TS_RAIL_ORDER_LANGUAGEIMEINFO) PAGEREF _Toc33698466 \h 682.2.2.10.1.1Globally Unique Identifier (GUID) PAGEREF _Toc33698467 \h 702.2.2.10.2Compartment Status Information PDU (TS_RAIL_ORDER_COMPARTMENTINFO_BODY) PAGEREF _Toc33698468 \h 712.2.2.11Z-Order Sync Messages PAGEREF _Toc33698469 \h 732.2.2.11.1Server Z-Order Sync Information PDU (TS_RAIL_ORDER_ZORDER_SYNC) PAGEREF _Toc33698470 \h 732.2.2.12Window Cloak State Sync Messages PAGEREF _Toc33698471 \h 732.2.2.12.1Window Cloak State Change PDU (TS_RAIL_ORDER_CLOAK) PAGEREF _Toc33698472 \h 732.2.2.13Power Display Request Messages PAGEREF _Toc33698473 \h 742.2.2.13.1Power Display Request PDU (TS_RAIL_ORDER_POWER_DISPLAY_REQUEST) PAGEREF _Toc33698474 \h 742.2.2.14Server Taskbar State Messages PAGEREF _Toc33698475 \h 742.2.2.14.1Taskbar Tab Info PDU (TS_RAIL_ORDER_TASKBARINFO) PAGEREF _Toc33698476 \h 742.2.2.15Accessibility Messages PAGEREF _Toc33698477 \h 762.2.2.15.1Text Scale Information PDU (TS_RAIL_ORDER_TEXTSCALEINFO) PAGEREF _Toc33698478 \h 762.2.2.15.2Caret Blink Information PDU (TS_RAIL_ORDER_CARETBLINKINFO) PAGEREF _Toc33698479 \h 763Protocol Details PAGEREF _Toc33698480 \h 773.1Common Details PAGEREF _Toc33698481 \h 773.1.1Abstract Data Model PAGEREF _Toc33698482 \h 773.1.1.1Server State Machine PAGEREF _Toc33698483 \h 773.1.1.2Icon Cache Support PAGEREF _Toc33698484 \h 793.1.2Timers PAGEREF _Toc33698485 \h 793.1.3Initialization PAGEREF _Toc33698486 \h 793.1.4Higher-Layer Triggered Events PAGEREF _Toc33698487 \h 793.1.5Message Processing Events and Sequencing Rules PAGEREF _Toc33698488 \h 793.1.5.1Constructing Handshake PDU PAGEREF _Toc33698489 \h 793.1.5.2Processing Handshake PDU PAGEREF _Toc33698490 \h 793.1.6Timer Events PAGEREF _Toc33698491 \h 803.1.7Other Local Events PAGEREF _Toc33698492 \h 803.2Client Details PAGEREF _Toc33698493 \h 803.2.1Abstract Data Model PAGEREF _Toc33698494 \h 803.2.1.1Windowing Support Level PAGEREF _Toc33698495 \h 803.2.1.2Marker Window ID PAGEREF _Toc33698496 \h 803.2.2Timers PAGEREF _Toc33698497 \h 803.2.3Initialization PAGEREF _Toc33698498 \h 803.2.4Higher-Layer Triggered Events PAGEREF _Toc33698499 \h 803.2.5Message Processing Events and Sequencing Rules PAGEREF _Toc33698500 \h 803.2.5.1Updates to RDP Core Protocol PAGEREF _Toc33698501 \h 813.2.5.1.1Constructing Client MCS Connect Initial PDU PAGEREF _Toc33698502 \h 813.2.5.1.2Processing Server MCS Connect Response PDU PAGEREF _Toc33698503 \h 813.2.5.1.3Constructing Client Info PDU PAGEREF _Toc33698504 \h 813.2.5.1.4Constructing Confirm Active PDU PAGEREF _Toc33698505 \h 813.2.5.1.5Processing Demand Active PDU PAGEREF _Toc33698506 \h 813.2.5.1.6Processing Window Information Orders PAGEREF _Toc33698507 \h 823.2.5.1.7Processing Notification Icon Orders PAGEREF _Toc33698508 \h 833.2.5.1.8Processing Desktop Information Orders PAGEREF _Toc33698509 \h 833.2.5.2Static Virtual Channel Protocol PAGEREF _Toc33698510 \h 843.2.5.2.1Initialization Messages PAGEREF _Toc33698511 \h 843.2.5.2.1.1Sending Client Information PDU PAGEREF _Toc33698512 \h 843.2.5.2.1.2Processing HandshakeEx PDU PAGEREF _Toc33698513 \h 843.2.5.2.2Program Launching Messages PAGEREF _Toc33698514 \h 843.2.5.2.2.1Sending Execute PDU PAGEREF _Toc33698515 \h 843.2.5.2.2.2Processing Execute Result PDU PAGEREF _Toc33698516 \h 843.2.5.2.3Local Client System Parameters Update Messages PAGEREF _Toc33698517 \h 843.2.5.2.3.1Sending System Parameters Update PDU PAGEREF _Toc33698518 \h 843.2.5.2.4Server System Parameters Update Messages PAGEREF _Toc33698519 \h 843.2.5.2.4.1Processing Server System Parameters Update PDU PAGEREF _Toc33698520 \h 843.2.5.2.5Local Client Event Messages PAGEREF _Toc33698521 \h 843.2.5.2.5.1Sending Activate PDU PAGEREF _Toc33698522 \h 853.2.5.2.5.2Sending System Menu PDU PAGEREF _Toc33698523 \h 853.2.5.2.5.3Sending System Command PDU PAGEREF _Toc33698524 \h 853.2.5.2.5.4Sending Notify Event PDU PAGEREF _Toc33698525 \h 853.2.5.2.6Language Bar Information PDUs PAGEREF _Toc33698526 \h 853.2.5.2.6.1Sending Language Bar Information PDU PAGEREF _Toc33698527 \h 853.2.5.2.6.2Processing Language Bar Information PDU PAGEREF _Toc33698528 \h 863.2.5.2.7Window Move Messages PAGEREF _Toc33698529 \h 863.2.5.2.7.1Processing Min Max Info PDU PAGEREF _Toc33698530 \h 863.2.5.2.7.2Processing Move/Size Start PDU PAGEREF _Toc33698531 \h 863.2.5.2.7.3Sending Window Move PDU PAGEREF _Toc33698532 \h 863.2.5.2.7.4Processing Move/Size End PDU PAGEREF _Toc33698533 \h 863.2.5.2.7.5Sending Window Snap PDU PAGEREF _Toc33698534 \h 873.2.5.2.8Application ID Messages PAGEREF _Toc33698535 \h 873.2.5.2.8.1Sending Client Get Application ID PDU PAGEREF _Toc33698536 \h 873.2.5.2.8.2Processing Server Get Application ID Response PDU PAGEREF _Toc33698537 \h 873.2.5.2.8.3Processing Server Get Application ID Extended Response PDU PAGEREF _Toc33698538 \h 873.2.5.2.9Z-Order Sync Messages PAGEREF _Toc33698539 \h 873.2.5.2.9.1Sending Z-Order Sync Support Flag PAGEREF _Toc33698540 \h 873.2.5.2.9.2Processing Z-Order Sync Information PDU PAGEREF _Toc33698541 \h 873.2.5.2.10Window Cloak State Sync Messages PAGEREF _Toc33698542 \h 883.2.5.2.10.1Sending Window Cloak State Change PDU PAGEREF _Toc33698543 \h 883.2.5.2.10.2Processing Window Cloak State Change PDU PAGEREF _Toc33698544 \h 883.2.5.2.11Power Display Request Messages PAGEREF _Toc33698545 \h 883.2.5.2.11.1Processing Power Display Request PDU PAGEREF _Toc33698546 \h 883.2.5.2.12Server Taskbar State Messages PAGEREF _Toc33698547 \h 883.2.5.2.12.1Processing Taskbar Tab Info PDU PAGEREF _Toc33698548 \h 883.2.5.2.13Accessibility Messages PAGEREF _Toc33698549 \h 883.2.5.2.13.1Sending Text Scale Information PDU PAGEREF _Toc33698550 \h 883.2.5.2.13.2Sending Caret Blink Information PDU PAGEREF _Toc33698551 \h 883.2.6Timer Events PAGEREF _Toc33698552 \h 893.2.7Other Local Events PAGEREF _Toc33698553 \h 893.3Server Details PAGEREF _Toc33698554 \h 893.3.1Abstract Data Model PAGEREF _Toc33698555 \h 893.3.1.1Client Local Move/Size Ability Store PAGEREF _Toc33698556 \h 893.3.1.2Windowing Support Level PAGEREF _Toc33698557 \h 893.3.1.3Marker Window PAGEREF _Toc33698558 \h 893.3.2Timers PAGEREF _Toc33698559 \h 893.3.3Initialization PAGEREF _Toc33698560 \h 903.3.4Higher-Layer Triggered Events PAGEREF _Toc33698561 \h 903.3.5Message Processing Events and Sequencing Rules PAGEREF _Toc33698562 \h 903.3.5.1Updates to RDP Core Protocol PAGEREF _Toc33698563 \h 903.3.5.1.1Processing Client MCS Connect Initial PDU PAGEREF _Toc33698564 \h 903.3.5.1.2Constructing Server MCS Connect Response PDU PAGEREF _Toc33698565 \h 903.3.5.1.3Processing Client Info PDU PAGEREF _Toc33698566 \h 903.3.5.1.4Constructing Demand Active PDU PAGEREF _Toc33698567 \h 903.3.5.1.5Processing Confirm Active PDU PAGEREF _Toc33698568 \h 903.3.5.1.6Constructing Window Information Orders PAGEREF _Toc33698569 \h 913.3.5.1.7Constructing Notification Icon Orders PAGEREF _Toc33698570 \h 923.3.5.1.8Constructing Desktop Information Orders PAGEREF _Toc33698571 \h 923.3.5.2Static Virtual Channel Protocol PAGEREF _Toc33698572 \h 933.3.5.2.1Initialization Messages PAGEREF _Toc33698573 \h 933.3.5.2.1.1Processing Client Information PDU PAGEREF _Toc33698574 \h 933.3.5.2.1.2Sending HandshakeEx PDU PAGEREF _Toc33698575 \h 933.3.5.2.2Program Launching Messages PAGEREF _Toc33698576 \h 933.3.5.2.2.1Processing Execute PDU PAGEREF _Toc33698577 \h 933.3.5.2.2.2Sending Execute Result PDU PAGEREF _Toc33698578 \h 943.3.5.2.3Local Client System Parameters Update Messages PAGEREF _Toc33698579 \h 943.3.5.2.3.1Processing System Parameters Update PDU PAGEREF _Toc33698580 \h 943.3.5.2.4Server System Parameters Update Messages PAGEREF _Toc33698581 \h 943.3.5.2.4.1Sending Server System Parameters Update PDU PAGEREF _Toc33698582 \h 943.3.5.2.5Local Client Event Messages PAGEREF _Toc33698583 \h 943.3.5.2.5.1Processing Activate PDU PAGEREF _Toc33698584 \h 943.3.5.2.5.2Processing System Menu PDU PAGEREF _Toc33698585 \h 943.3.5.2.5.3Processing System Command PDU PAGEREF _Toc33698586 \h 943.3.5.2.5.4Processing Notify Event PDU PAGEREF _Toc33698587 \h 943.3.5.2.5.5Processing Language Bar Information PDU PAGEREF _Toc33698588 \h 943.3.5.2.6Window Move Messages PAGEREF _Toc33698589 \h 953.3.5.2.6.1Sending Min Max Info PDU PAGEREF _Toc33698590 \h 953.3.5.2.6.2Sending Move/Size Start PDU PAGEREF _Toc33698591 \h 953.3.5.2.6.3Processing Window Move PDU PAGEREF _Toc33698592 \h 953.3.5.2.6.4Sending Move/Size End PDU PAGEREF _Toc33698593 \h 953.3.5.2.6.5Processing Window Snap PDU PAGEREF _Toc33698594 \h 953.3.5.2.7Application ID Messages PAGEREF _Toc33698595 \h 953.3.5.2.7.1Processing the Get Application ID PDU PAGEREF _Toc33698596 \h 963.3.5.2.7.2Sending the Get Application ID Response PDU PAGEREF _Toc33698597 \h 963.3.5.2.8Z-Order Sync Messages PAGEREF _Toc33698598 \h 963.3.5.2.8.1Processing Z-Order Sync Support Flag PAGEREF _Toc33698599 \h 963.3.5.2.8.2Sending Z-Order Sync Information PDU PAGEREF _Toc33698600 \h 963.3.5.2.9Window Cloak State Sync Messages PAGEREF _Toc33698601 \h 963.3.5.2.9.1Processing Window Cloak State Change PDU PAGEREF _Toc33698602 \h 963.3.5.2.9.2Sending Window Cloak State Change PDU PAGEREF _Toc33698603 \h 963.3.5.2.10Power Display Request Messages PAGEREF _Toc33698604 \h 963.3.5.2.10.1Sending Power Display Request PDU PAGEREF _Toc33698605 \h 963.3.5.2.11Server Taskbar State Messages PAGEREF _Toc33698606 \h 973.3.5.2.11.1Sending Taskbar Tab Info PDU PAGEREF _Toc33698607 \h 973.3.5.2.12Accessibility Messages PAGEREF _Toc33698608 \h 973.3.5.2.12.1Processing Text Scale Information PDU PAGEREF _Toc33698609 \h 973.3.5.2.12.2Processing Caret Blink Information PDU PAGEREF _Toc33698610 \h 973.3.6Timer Events PAGEREF _Toc33698611 \h 973.3.7Other Local Events PAGEREF _Toc33698612 \h 973.3.7.1Sending Language Bar Information PDU PAGEREF _Toc33698613 \h 973.3.7.2Sending Language Profile Information PDU PAGEREF _Toc33698614 \h 973.3.7.3Sending Compartment Status Information PDU PAGEREF _Toc33698615 \h 974Protocol Examples PAGEREF _Toc33698616 \h 994.1Updates to the RDP Core Protocol PAGEREF _Toc33698617 \h 994.1.1Windowing Alternate Secondary Drawing Orders PAGEREF _Toc33698618 \h 994.1.1.1New or Existing Windows PAGEREF _Toc33698619 \h 994.1.1.2Deleted Window PAGEREF _Toc33698620 \h 994.1.1.3New or Existing Notification Icons PAGEREF _Toc33698621 \h 1004.1.1.4Deleted Notification Icons PAGEREF _Toc33698622 \h 1014.1.1.5Actively Monitored Desktop PAGEREF _Toc33698623 \h 1014.1.1.6Non-monitored Desktop PAGEREF _Toc33698624 \h 1014.2Initialization Messages PAGEREF _Toc33698625 \h 1014.2.1TS_RAIL_ORDER_HANDSHAKE PAGEREF _Toc33698626 \h 1014.2.2TS_RAIL_ORDER_CLIENTSTATUS PAGEREF _Toc33698627 \h 1024.3Launching Messages PAGEREF _Toc33698628 \h 1024.3.1TS_RAIL_ORDER_EXEC PAGEREF _Toc33698629 \h 1024.3.2TS_RAIL_ORDER_EXEC_RESULT PAGEREF _Toc33698630 \h 1034.4Local Client System Parameters Update Messages PAGEREF _Toc33698631 \h 1034.4.1TS_RAIL_ORDER_SYSPARAM PAGEREF _Toc33698632 \h 1034.5Local Client Event Messages PAGEREF _Toc33698633 \h 1034.5.1TS_RAIL_ORDER_ACTIVATE PAGEREF _Toc33698634 \h 1034.5.2TS_RAIL_ORDER_SYSMENU PAGEREF _Toc33698635 \h 1034.5.3TS_RAIL_ORDER_SYSCOMMAND PAGEREF _Toc33698636 \h 1044.5.4TS_RAIL_ORDER_NOTIFY_EVENT PAGEREF _Toc33698637 \h 1044.5.5TS_RAIL_ORDER_LANGBARINFO PAGEREF _Toc33698638 \h 1044.5.6TS_RAIL_ORDER_GET_APPID_REQ PAGEREF _Toc33698639 \h 1044.5.7TS_RAIL_ORDER_GET_APPID_RESP PAGEREF _Toc33698640 \h 1054.6Window Move Messages PAGEREF _Toc33698641 \h 1054.6.1TS_RAIL_ORDER_WINDOWMOVE PAGEREF _Toc33698642 \h 1054.6.2TS_RAIL_ORDER_LOCALMOVESIZE PAGEREF _Toc33698643 \h 1054.6.3TS_RAIL_ORDER_MINMAXINFO PAGEREF _Toc33698644 \h 1064.7Z-Order Sync Messages PAGEREF _Toc33698645 \h 1064.7.1TS_RAIL_ORDER_ZORDER_SYNC PAGEREF _Toc33698646 \h 1064.8Power Display Request Messages PAGEREF _Toc33698647 \h 1064.8.1TS_RAIL_ORDER_POWER_DISPLAY_REQUEST PAGEREF _Toc33698648 \h 1065Security PAGEREF _Toc33698649 \h 1075.1Security Considerations for Implementers PAGEREF _Toc33698650 \h 1075.2Index of Security Parameters PAGEREF _Toc33698651 \h 1076Appendix A: Product Behavior PAGEREF _Toc33698652 \h 1087Change Tracking PAGEREF _Toc33698653 \h 1118Index PAGEREF _Toc33698654 \h 113Introduction XE "Introduction" XE "Introduction"Remote Programs, also known as remote applications integrated locally (RAIL), is a Remote Desktop Protocol (RDP) feature (as specified in the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification [MS-RDPBCGR]) that presents a remote application (running remotely on a RAIL server) as a local user application (running on the RAIL client machine). RAIL extends the core RDP protocol to deliver this seamless windows experience. Sections 1.5, 1.8, 1.9, 2, and 3 of this specification are normative. All other sections and examples in this specification are informative.Glossary XE "Glossary" This document uses the following terms:Application Desktop Toolbar: A window (anchored to an edge of the screen) that is similar to the taskbar and that typically contains buttons that give the user quick access to other applications and windows.balloon tooltip: A tooltip displayed inside a balloon-shaped window. It usually has an icon, a title, and the tooltip text.caret: A blinking line, block, or bitmap in the client area of a window. The caret typically indicates the location at which text or graphics will be inserted.client area: The area of the desktop that is available for a window or notification icon to paint on. desktop switch: The act of switching from one user desktop to another, or to the Windows Secure Desktop.display-required power request: A power request that indicates whether the display of the device should remain in the powered-on state even if there is no user input for an extended period.Filter Keys: An accessibility feature that allows configuration of keyboard input characteristics such as acceptance delay, repeat rate, and bounce rate, to filter out accidental keypresses.input method editor (IME): A process that maps keyboard input to phonetic components (or other language elements) that are specific to a selected language. IMEs are typically used with languages for which conventional keyboard representation is difficult or impossible. For example, East Asian languages are made up of thousands of distinct characters, which makes it impossible to show all of the characters on a single keyboard. To facilitate composition, the IME converts keystrokes into the characters of the target language (such as Japanese Katakana or Simplified Chinese).marker window: A server-side window that is not remoted to the client and is used to manage the activation of RAIL windows.notification icon: An icon placed in the notification area.protocol data unit (PDU): Information that is delivered as a unit among peer entities of a network and that may contain control information, address information, or data. For more information on remote procedure call (RPC)-specific PDUs, see [C706] section 12.RAIL notification icon: An icon placed in the notification area of the client machine by the remote applications integrated locally (RAIL) client.RAIL window: A local client window that mimics a remote application window.remote application: An application running on a remote server.remote applications integrated locally (RAIL): A software component that enables remoting of individual windows and notification icons.screen coordinates: Coordinates relative to the top-left corner of the screen, which has the coordinates (0,0).Snap: A window management feature in Windows that resizes a window to fill a portion (usually one half or one quarter) of the screen when the user drags the window title bar to the edge or corner of the screen, uses a keyboard shortcut, or selects the window from the Snap Assist interface. When the window is moved away from the edge of the screen, it returns to its previous size.Sticky Keys: An accessibility feature that allows users to enter key combinations by pressing modifier keys (SHIFT, CTRL, or ALT) and then other keys in sequence, rather than at the same time.system command: A message that is sent to a window or notification icon via its system menu, or via a keyboard shortcut. Common system commands include minimize, maximize, move, and so on.System menu: See window menu.tabbed application: A feature of Windows, introduced in Windows 7, that allows a multiple-document interface (MDI) or tabbed-document interface (TDI) application to display a separate tab on its taskbar group flyout for each document it manages.taskbar: A window, anchored to an edge of the screen, that contains the Start button and buttons for all open programs.text scale: A setting that controls the size of text in Windows.Toggle Keys: An accessibility feature that causes the computer to emit audible tones when CAPS LOCK, NUM LOCK, or SCROLL LOCK are switched on or off.tooltip: A window displaying text that is created when the mouse is moved over a window or notification icon.Unicode character: Unless otherwise specified, a 16-bit UTF-16 code unit.window coordinates: Coordinates relative to the top-left corner of the window.window visible region: The portion of the window that is not obscured by other user interface elements.z-order: The rendering order of an object on a z axis.MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.References XE "References" Links to a document in the Microsoft Open Specifications library point to the correct section in the most recently published version of the referenced document. However, because individual documents in the library are not updated at the same time, the section numbers in the documents may not match. You can confirm the correct section numbering by checking the Errata. Normative References XE "References:normative" XE "Normative references" We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact dochelp@. We will assist you in finding the relevant information. [MS-DTYP] Microsoft Corporation, "Windows Data Types".[MS-ERREF] Microsoft Corporation, "Windows Error Codes".[MS-RDPBCGR] Microsoft Corporation, "Remote Desktop Protocol: Basic Connectivity and Graphics Remoting".[MS-RDPEGDI] Microsoft Corporation, "Remote Desktop Protocol: Graphics Device Interface (GDI) Acceleration Extensions".[MS-RDPEGFX] Microsoft Corporation, "Remote Desktop Protocol: Graphics Pipeline Extension".[MSDN-MUI] Microsoft Corporation, "Language Identifier Constants and Strings", [MSDN-STPFLAG] Microsoft Corporation, "STPFLAG enumeration", [MSFT-DIL] Microsoft Corporation, "Default Input Locales", (v=ws.10)[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, References XE "References:informative" XE "Informative references" [MSDN-CREATEWINEX] Microsoft Corporation, "CreateWindowEx function", [MSDN-HIGHCONTRAST] Microsoft Corporation, "HIGHCONTRAST", [MSDN-SHELLNOTIFY] Microsoft Corporation, "Shell_NotifyIcon function", [MSDN-SysParamsInfo] Microsoft Corporation, "SystemParametersInfo function", (VS.85).aspx[MSDN-VIRTUALSCR] Microsoft Corporation, "The Virtual Screen", (VS.85).aspx[MSDN-WINFEATURE] Microsoft Corporation, "Window Features", [MSDN-WINSTYLE] Microsoft Corporation, "Window Styles", XE "Overview (synopsis)" XE "Overview (synopsis)"Remote Programs, also known as remote applications integrated locally (RAIL), is an RDP feature (as specified in the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification [MS-RDPBCGR]) that presents a remote application (running remotely on a RAIL server) as a local user application (running on the RAIL client machine). RAIL extends the core RDP protocol to deliver this seamless experience. Support for RAIL is optional in RDP, and it is negotiated as part of the capability negotiation process.The RAIL client, running on the user's local machine, creates one local window or notification icon for every window or notification icon running on the RAIL server. These local windows/icons, called RAIL windows/icons, exactly mimic the appearance of their corresponding remote windows/icons, which are created by remote applications running on the RAIL server. All local user input to the RAIL windows/icons is captured by the RAIL client and redirected to the server. All display updates to the remote windows/icons on the RAIL server are captured by the server and redirected to the clientRAIL relies on the core RDP protocol for basic connection establishment, connection security, local input redirection to server, and drawing order updates from server to client (as specified in the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification). In addition, RAIL adds the following extensions to the RDP protocol:Extensions to the RDP core protocol to send drawing orders from the server to the client describing individual windows and notification icons. This enables the RAIL client to mimic their geometry in RAIL windows/icons.Virtual channel messages from client to server containing client information, system parameters information, and RAIL-specific commands, such as remote program launch.Virtual channel updates from server to client containing responses to client messages, server system parameters information, or information regarding other RAIL-specific features such as local move/resize (specified in section 1.3.2.5).Certain classes of user input are not directly received by the RAIL window/icon as keyboard or mouse input. Examples include right-clicking the window's taskbar icon; key combinations to minimize, maximize, or restore all windows; and all user interactions with notification icons. These interactions are posted to the RAIL window/icon as non-keyboard or non-mouse messages, and, hence, cannot be sent over the core RDP channel. The client sends these interactions to the server as RAIL Virtual Channel messages.A virtual channel message from the server to the client that indicates the ID of the server-side marker window. Relationship to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification XE "Relation to RDP core protocol"Remote applications integrated locally (RAIL) protocol messages travel over two separate RDP channels:Window information orders from server to client are encapsulated in Alternate Secondary Drawing Orders (as specified in [MS-RDPEGDI] section 2.2.2.2.1.3.1.1).All other RAIL-specific messages travel over a static virtual channel, called the RAIL virtual channel, that is created by the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting during connection establishment (as specified in [MS-RDPBCGR] sections 1.3.3 and 2.2.1).Message Flows XE "Messages:flows"RAIL Session Connection XE "RAIL session:connection" XE "Messages:flows" XE "Messages:flows" XE "Messages:flows"RAIL connection establishment follows the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting connection establishment sequence (as specified in [MS-RDPBCGR] section 1.3.1.1). RAIL-specific information during connection establishment is outlined as follows:The client creates and initializes a static virtual channel to be used for RAIL protocol messages. Information regarding this channel is sent to the server in the Client MCS Connect Initial PDU with GCC Conference Create Request (as specified in [MS-RDPBCGR] section 2.2.1.3).The Client Info PDU (as specified in [MS-RDPBCGR] section 2.2.1.11) indicates the client's request to establish a RAIL connection.The Alternate Shell field of the Client Info PDU, as specified in [MS-RDPBCGR] section 2.2.1.11, is NOT used to communicate the initial application started in the session. Instead, the initial application information is communicated to the server via the Client Execute PDU.The client can set the INFO_HIDEF_RAIL_SUPPORTED flag of the Client Info PDU (as specified in [MS-RDPBCGR] section 2.2.1.11.1.1) to request an Enhanced RemoteApp session. If the server does not support Enhanced RemoteApp, it should fall back to a standard RemoteApp session.If the server supports RAIL, the Demand Active PDU has to contain the Remote Programs Capability Set and Window List Capability Set to indicate that it supports RAIL.The client sends corresponding Remote Programs Capability Set and Window Capability Set in the Confirm Active PDU.If, in the Demand Active PDU, the server does not indicate that it supports RAIL, the client requests a disconnection according to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting ([MS-RDPBCGR] section 1.3.1.4.1). Likewise, if the client does not indicate that it supports RAIL in the Confirm Active PDU, the server disconnects the client (see [MS-RDPBCGR] section 1.3.1.4.2).After the RDP connection is established, a RAIL client and server exchange Handshake PDUs over the RAIL Virtual Channel to indicate that each is ready for data on the virtual channel. The server should send a HandshakeEx PDU instead of a Handshake PDU if the client and server both indicate support for it in the Remote Programs Capability Set, or if Enhanced RemoteApp is in use. The client must respond with a Handshake PDU.Figure SEQ Figure \* ARABIC 1: Handshake PDURAIL Session Disconnection and Reconnection XE "RAIL session:logoff" XE "RAIL session:reconnection" XE "RAIL session:disconnection"RAIL Session Disconnection and RAIL Session Reconnection follow the corresponding Remote Desktop Protocol: Basic Connectivity and Graphics Remoting sequences, as specified in [MS-RDPBCGR] section 1.3.1.4 (Disconnection Sequences) and [MS-RDPBCGR] section 1.3.1.5 (Automatic Reconnection).RAIL Server/Client Synchronization XE "RAIL server-client synchronization"A RAIL server synchronizes with the RAIL client over the RDP channel upon connection establishment or when a desktop switch occurs.Figure SEQ Figure \* ARABIC 2: RAIL protocol client synchronizationThe synchronization begins with a Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_ARC_BEGAN(0x00000008) flag set in the Hdr field (section 2.2.1.3.3.2.2). Upon receipt of this order, the client clears all previously received information from the server. This order is followed by any number of Windowing Alternate Secondary Drawing Orders describing windows, notification icons, and desktop. Finally, the server sends a Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_ARC_COMPLETED (0x00000004) flag set to signal the end of synchronization data (section 2.2.1.3.3.2.1).After the initial synchronization, Windowing Alternate Secondary Drawing Orders flow from server to client whenever a change occurs in a window, notification icon, or desktop state.If the server is not capable of monitoring the desktop (for example, secure desktop), it sends a Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_NONE (0x00000001) flag set in the Hdr field (section 2.2.1.3.3.2.2). Upon receipt of this order, the client clears out all previously received information from the server.RAIL Virtual Channel Messages XE "RAIL virtual channel messages"Client/server or server/client messages can flow over the RAIL anytime after the virtual channel handshake sequence (section 2.2.2.2.1). The client sends the Client Information PDU and the Client System Parameters Update PDU immediately after the handshake to inform the server of its state and system parameters. If the client includes the TS_RAIL_CLIENTSTATUS_ZORDER_SYNC (0x00000004) flag in the Client Information PDU, then the server creates the marker window (section 3.3.1.3) and sends the ID of this window to the client using the Z-Order Sync Information PDU (section 2.2.2.11.1). If the client includes the TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED (0x00000010) flag in the Client Information PDU, then the server sends the dimensions of the window resize margins in the Window Information PDU (section 2.2.1.3.1). If the client includes the TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED (0x00000040) flag in the Client Information PDU, then the server sends the registration state and edge messages for application desktop toolbars in the Window Information PDU (section 2.2.1.3.1). The server sends the Server System Parameters Update PDU immediately after the handshake to inform the client of its system parameters. All other virtual channel messages are generated in response to events on the client or server. If the client includes the TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED (0x00000080) flag in the Client Information PDU, then the server sends display-required power requests to the client using the Power Display Request PDU (section 2.2.2.13.1).RAIL Local Move/Resize XE "RAIL local move/size"Local move/resize features are RAIL options designed to optimize bandwidth in certain situations where RAIL windows are moved or resized by the user. A RAIL client indicates to the RAIL server whether it supports local move/resize through the Client Capabilities PDU (section 2.2.2.2.2), sent after the Virtual Channel handshake sequence. RAIL servers do not have to explicitly report move/size support to the client.Figure SEQ Figure \* ARABIC 3: RAIL local move/resize operationLocal move/resize is based on the following logic:When the server detects that a window is beginning to be moved or resized, it sends a Server Min Max Info PDU?(section?2.2.2.7.1) to the client with the window extents. This is followed by a Server Move/Size Start PDU?(section?2.2.2.7.2).If the client supports local move/resize, it injects a mouse button-down at the position indicated by the move/size PDU (if the move/size was initiated via mouse) or posts a command to the window (if the move/size was initiated via keyboard) to initiate move/resize of the window by the local window manager.At the same time, the client lets the local Window Manager handle all keyboard and mouse events for the RAIL window, instead of redirecting to the server, to ensure that the move/size is entirely happening locally.Finally, when the user is done with the move/resize, the local RAIL window receives this notification and forwards a mouse button-up to the server to end move/size on the server. For keyboard-based moves and all resize operations, the client also sends a Client Window Move PDU?(section?2.2.2.7.4) to the server to inform the server of the window's new position and size. (For mouse-based moves, the mouse button-up is sufficient to inform the window's final position).When the server detects that move/size has ended, it sends a Server Move/Size End PDU?(section?2.2.2.7.3) with the final window position and size. The client can adjust its local RAIL window if necessary using this information.Enhanced RemoteApp XE "Enhanced RemoteApp"Enhanced RemoteApp is a graphics presentation mode supported by RDP 8.1 that leverages the Remote Desktop Protocol: Graphics Pipeline Extension ([MS-RDPEGFX] section 1.3) to remote only the contents of the windows running in a RAIL session (see [MS-RDPEGFX] section 1.5 for implementation requirements). This implies that the desktop background is not remoted and a client that supports Enhanced RemoteApp will always have access to the complete contents of a RAIL window, even if the window is obscured on the server.Window Resize MarginsWindow resize margins are supported by RDP 10.2. The dimensions of these margins are defined by the server and are to be used by the client to create a transparent hit-testable region around the RemoteApp window graphics. Any mouse, pen, or touch input within these margins is to be sent to the server.Window resize margins must be used to extend the window geometry and are not included in the boundaries of the window sent in the Window Information Order (section 2.2.1.3.1.2.1).Figure SEQ Figure \* ARABIC 4: Window Resize MarginsRelationship to Other Protocols XE "Relationship to other protocols" XE "Relationship to other protocols"RAIL extends the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification [MS-RDPBCGR].Prerequisites/Preconditions XE "Prerequisites" XE "Preconditions" XE "Preconditions" XE "Prerequisites"The Remote Programs Extensions for Remote Desktop Protocol has the assumption to operate in a fully operational RDP connection. A fully operational RDP connection is a connection that has passed the Connection Finalization phase, as specified in [MS-RDPBCGR] section 1.3.1.1.The RAIL server endpoint expects that the Channel PDU Header ([MS-RDPBCGR] section 2.2.6.1.1) is visible for all data that flows over the RAIL virtual channel (sections 1.3.1 and 2.2.2). To ensure that this condition is met, the CHANNEL_FLAG_SHOW_PROTOCOL (0x00000010) flag has to be set in the flags field of the Channel PDU Header.Applicability Statement XE "Applicability" XE "Applicability"The Remote Desktop Protocol: Remote Programs Virtual Channel Extension applies only to RDP 6.0 and later.Versioning and Capability Negotiation XE "Versioning" XE "Capability negotiation" XE "Capability negotiation" XE "Versioning"Versioning: RAIL is supported in RDP 6.0 and later clients only. The RDP version is negotiated as a part of the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting (as specified in [MS-RDPBCGR] section 1.7). Capability: RAIL-specific capabilities for Remote Programs and Window List are negotiated via the Demand Active and Confirm Active PDUs of the server and client, respectively (as specified in [MS-RDPBCGR] section 2.2.1.13).Vendor-Extensible Fields XE "Vendor-extensible fields" XE "Fields - vendor-extensible" XE "Fields - vendor-extensible" XE "Vendor-extensible fields"This protocol uses Win32 error codes as defined in [MS-ERREF] section 2.2. Vendors SHOULD reuse those values with their indicated meaning. Choosing any other value runs the risk of a collision in the future.Standards Assignments XE "Standards assignments" XE "Standards assignments"The Remote Desktop Protocol: Remote Programs Virtual Channel Extension does not use any assigned standards.Messages XE "Messages:overview"The following sections specify how Remote Desktop Protocol: Remote Programs Virtual Channel Extension messages are transported and Remote Desktop Protocol: Remote Programs Virtual Channel Extension message syntax.This protocol references commonly used data types as defined in [MS-DTYP].Transport XE "Messages:transport" XE "Transport" XE "Transport - message" XE "Messages:transport"The Remote Desktop Protocol: Remote Programs Virtual Channel Extension messages are passed between the client and server, embedded within an RDP connection, as described in section 1.3.1 for an overview.The protocol uses the TCP connection created by the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting (as specified in [MS-RDPBCGR] section 2.1) and does not establish any transport connections.Message Syntax XE "Syntax - message" XE "Messages:syntax"Updates to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification XE "Messages:Updates to the Remote Desktop Protocol\: Basic Connectivity and Graphics Remoting Specification" XE "Updates to the Remote Desktop Protocol\: Basic Connectivity and Graphics Remoting Specification message" XE "RDP core:messages" XE "Messages:RDP core"Support for RAIL is indicated by the client and server during the connection establishment phase of the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting [MS-RDPBCGR], as described in section 1.3.2.1 for an overview of how the RAIL connection is established.The Remote Desktop Protocol: Basic Connectivity and Graphics Remoting has also been extended to support windowing-specific drawing orders for RAIL scenarios. These orders, called Windowing Alternate Secondary Drawing Orders, describe state for windows, notification icons, and desktop-related information on the server. The following sections outline the capability sets and drawing orders that make up the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting extensions for RAIL. Capability Sets XE "Capability sets"A RAIL server and client indicate support for RAIL by exchanging two capability sets during the capabilities negotiation phase of RDP connection establishment. These sets are outlined in the following sections.Remote Programs Capability Set XE "Remote_Programs_Capability_Set packet"The Remote Programs Capability Set is sent by the server in the Demand Active PDU and by the client in the Confirm Active PDU, as specified in [MS-RDPBCGR] section 2.2.1.13. It indicates that the client and server are capable of communicating RAIL PDUs over the RAIL static virtual channel.01234567891012345678920123456789301CapabilitySetTypeLengthCapabilityRailSupportLevelCapabilitySetType (2 bytes): An unsigned 16-bit integer. The type of the capability set. This field MUST be set to 0x0017 (CAPSTYPE_RAIL).LengthCapability (2 bytes): An unsigned 16-bit integer. The combined length of the CapabilitySetType, LengthCapability, and RailSupportLevel fields, in bytes.RailSupportLevel (4 bytes): A 4-byte bit field specifying support for Remote Programs and the Docked Language Bar for Remote Programs. HYPERLINK \l "Appendix_A_1" \o "Product behavior note 1" \h <1>01234567891012345678920123456789301SLHICMKE000000000000000000000000Where the bits are defined as:ValueDescriptionSTS_RAIL_LEVEL_SUPPORTEDSet to 1 if the client/server is capable of supporting Remote Programs; set to 0 otherwise.LTS_RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTEDSet to 1 if the client/server is capable of supporting Docked Language Bar for Remote Programs; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.HTS_RAIL_LEVEL_SHELL_INTEGRATION_SUPPORTEDSet to 1 if the client/server is capable of supporting extended shell integration like tabbed windows and overlay icons for Remote Programs; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.ITS_RAIL_LEVEL_LANGUAGE_IME_SYNC_SUPPORTEDSet to 1 if the client/server is capable of supporting syncing language/IME changes for Remote Programs; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.CTS_RAIL_LEVEL_SERVER_TO_CLIENT_IME_SYNC_SUPPORTEDSet to 1 if the client/server is capable of supporting syncing IME changes originating at the server for Remote Programs; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.MTS_RAIL_LEVEL_HIDE_MINIMIZED_APPS_SUPPORTEDSet to 1 if the client/server supports hiding minimized windows of Remote Programs on the server; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.KTS_RAIL_LEVEL_WINDOW_CLOAKING_SUPPORTEDSet to 1 if the client/server supports syncing per-window cloak state changes originating on the client for Remote Programs; set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.ETS_RAIL_LEVEL_HANDSHAKE_EX_SUPPORTEDSet to 1 if the client/server supports the HandshakeEx PDU (section 2.2.2.2.3); set to 0 otherwise. This flag MUST be set to 0 if TS_RAIL_LEVEL_SUPPORTED is 0.Window List Capability Set XE "Window_List_Capability_Set packet"The Window List Capability Set is sent by the server in the Demand Active PDU and by the client in the Confirm Active PDU, as specified in [MS-RDPBCGR] section 2.2.1.13. It indicates that the client and server are capable of communicating Windowing Alternate Secondary Drawing Orders as extensions to the core RDP protocol drawing orders (see section 2.2.1.3).01234567891012345678920123456789301CapabilitySetTypeLengthCapabilityWndSupportLevelNumIconCachesNumIconCacheEntriesCapabilitySetType (2 bytes): An unsigned 16-bit integer. The type of capability set. This field MUST be set to 0x0018 (CAPSTYPE_WINDOW).LengthCapability (2 bytes): An unsigned 16-bit integer. Specifies the combined length of the CapabilitySetType, LengthCapability, WndSupportLevel, NumIconCaches, and NumIconCacheEntries fields, in bytes.WndSupportLevel (4 bytes): An unsigned 32-bit integer. The windowing support level. This field MUST be set to one of the following values. HYPERLINK \l "Appendix_A_2" \o "Product behavior note 2" \h <2>ValueMeaningTS_WINDOW_LEVEL_NOT_SUPPORTED0x00000000The client or server is not capable of supporting Windowing Alternate Secondary Drawing Orders.TS_WINDOW_LEVEL_SUPPORTED0x00000001The client or server is capable of supporting Windowing Alternate Secondary Drawing Orders.TS_WINDOW_LEVEL_SUPPORTED_EX0x00000002The client or server is capable of supporting Windowing Alternate Secondary Drawing Orders and the following flags:WINDOW_ORDER_FIELD_CLIENTAREASIZEWINDOW_ORDER_FIELD_RPCONTENTWINDOW_ORDER_FIELD_ROOTPARENTNumIconCaches (1 byte): An unsigned 8-bit integer. The number of icon caches requested by the server (Demand Active PDU) or supported by the client (Confirm Active PDU). The server maintains an icon cache and refers to it to avoid sending duplicate icon information (see section 2.2.1.3.1.2.3). The client also maintains an icon cache and refers to it when the server sends across a Cached Icon Window Information Order.NumIconCacheEntries (2 bytes): An unsigned 16-bit integer. The number of entries within each icon cache requested by the server (Demand Active PDU) or supported by the client (Confirm Active PDU).The server maintains an icon cache and refers to it to avoid sending duplicate icon information (see section 2.2.1.3.1.2.3). The client also maintains an icon cache and refers to it when the server sends across a Cached Icon Window Information mon Structures XE "Common structures" XE "Structures"Unicode String (UNICODE_STRING) XE "UNICODE_STRING packet"The UNICODE_STRING packet is used to pack a variable-length Unicode string.01234567891012345678920123456789301CbStringString (variable)...CbString (2 bytes): An unsigned 16-bit integer. The number of bytes in the String field. If CbString is zero (0), then the String field is absent. The maximum allowed value for CbString depends on the context in which the string is used.String (variable): Optional and of variable length. A non-null-terminated Unicode character string. The number of characters in the string is equal to the value of CbString divided by 2.Rectangle (TS_RECTANGLE_16) XE "TS_RECTANGLE_16 packet"The TS_RECTANGLE_16 structure describes a rectangle by using its top-left and bottom-right coordinates. The units depend on the context in which this structure is used.01234567891012345678920123456789301LeftTopRightBottomLeft (2 bytes): An unsigned 16-bit integer. The x-coordinate of the rectangle's top-left (2 bytes): An unsigned 16-bit integer. The y-coordinate of the rectangle's top-left corner.Right (2 bytes): An unsigned 16-bit integer. The x-coordinate of the rectangle's bottom-right corner.Bottom (2 bytes): An unsigned 16-bit integer. The y-coordinate of the rectangle's bottom-right corner.Icon Info (TS_ICON_INFO) XE "TS_ICON_INFO packet"The TS_ICON_INFO packet describes an icon.01234567891012345678920123456789301CacheEntryCacheIdBppWidthHeightCbColorTable (optional)CbBitsMaskCbBitsColorBitsMask (variable)...ColorTable (variable)...BitsColor (variable)...CacheEntry (2 bytes): An unsigned 16-bit integer. The index within an icon cache at which this icon MUST be stored at the client. The index is unique within a given CacheId (see following description). The maximum value of CacheEntry is negotiated between server and client through the NumIconCacheEntries field of the Window List Capability Set during the connection establishment phase.CacheId (1 byte): An unsigned 8-bit integer. The index of the icon cache at which this icon MUST be stored at the client. If the value is 0xFFFF, the icon SHOULD NOT be cached. The CacheId is unique within a remote session. The maximum value of CacheId is negotiated between server and client through the NumIconCaches field of the Window List Capability Set while establishing the connection.Bpp (1 byte): An unsigned 8-bit integer. The color depth of the icon. Valid values are as follows:1, 4, 8, 16, 24, 32.Width (2 bytes): An unsigned 16-bit integer. The width, in pixels, of the icon.Height (2 bytes): An unsigned 16-bit integer. The height, in pixels, of the icon.CbColorTable (2 bytes): An unsigned 16-bit integer. The size, in bytes, of the color table data. This field is ONLY present if the bits per pixel (Bpp) value is 1, 4, or 8.CbBitsMask (2 bytes): An unsigned 16-bit integer. The size, in bytes, of the icon's one-bit color-depth mask image.CbBitsColor (2 bytes): An unsigned 16-bit integer. The size, in bytes, of the icon's color image.BitsMask (variable): The image data for the 1-bpp bitmap. The length, in bytes, of this field is equal to the value of CbBitsMask. This field is optional. ColorTable (variable): The image data for the color bitmap. The length, in bytes, of this field is equal to the value of CbColorTable. This field is only present if the Bpp value is 1, 4, or 8.BitsColor (variable): The image data for the icon's color image. The length, in bytes, of this field is equal to the value of CbBitsColor. This field is optional.Cached Icon Info (TS_CACHED_ICON_INFO) XE "TS_CACHED_ICON_INFO packet"The TS_CACHED_ICON_INFO packet describes a cached icon.01234567891012345678920123456789301CacheEntryCacheIdCacheEntry (2 bytes): An unsigned 16-bit integer. The index within an icon cache at the client that refers to the cached icon. This value MUST have been previously specified by the server in the Icon Info structure (section 2.2.1.2.3) of a Window Information Order (section 2.2.1.3.1) or Icon structure of a New or Existing Notification Icon (section 2.2.1.3.2.2.1).CacheId (1 byte): An unsigned 8-bit integer. The index of the icon cache containing the cached icon. This value MUST have been previously specified by the server in the Icon Info structure of a Window Information Order or Icon structure of a New or Existing Notification Icon.Windowing Alternate Secondary Drawing Orders XE "Windowing alternate secondary drawing orders"Window Information XE "Window information"Window Information Orders specify the state of windows on the mon Header (TS_WINDOW_ORDER_HEADER) XE "TS_WINDOW_ORDER_HEADER packet"The TS_WINDOW_ORDER_HEADER packet contains information common to every Windowing Alternate Secondary Drawing Order describing a window.01234567891012345678920123456789301HeaderOrderSizeFieldsPresentFlags...WindowId...Header (1 byte): An unsigned 8-bit integer. An Alternate Secondary Order Header, as specified in [MS-RDPEGDI] section 2.2.2.2.1.3.1.1. The embedded orderType field MUST be set to 0x0B (TS_ALTSEC_WINDOW).OrderSize (2 bytes): An unsigned 16-bit integer. The size of the entire packet, in bytes.FieldsPresentFlags (4 bytes): An unsigned 32-bit integer. The flags indicating which fields are present in the packet. See Orders.WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window being described in the drawing order. It is generated by the server and is unique for every window in the session.OrdersNew or Existing Window XE "Window_Information_Order packet"A Window Information Order is generated by the server whenever a new window is created on the server or when a property on a new or existing window is updated. The window metrics sent in this order are illustrated in the "An illustration of the window metrics sent in the Window Information Order" figure in section 3.3.5.1.6.01234567891012345678920123456789301Hdr......OwnerWindowId (optional)...Style (optional)...ExtendedStyle (optional)...ShowState (optional)TitleInfo (variable)...ClientOffsetX (optional)ClientOffsetY (optional)ClientAreaWidth (optional)ClientAreaHeight (optional)WindowLeftResizeMargin (optional)WindowRightResizeMargin (optional)WindowTopResizeMargin (optional)WindowBottomResizeMargin (optional)RPContent (optional)RootParentHandle (optional)...WindowOffsetX (optional)...WindowOffsetY (optional)...WindowClientDeltaX (optional)...WindowClientDeltaY (optional)...WindowWidth (optional)...WindowHeight (optional)...NumWindowRects (optional)WindowRects (variable)...VisibleOffsetX (optional)VisibleOffsetY (optional)NumVisibilityRects (optional)VisibilityRects (variable)...OverlayDescription (variable)...TaskbarButton (optional)EnforceServerZOrder (optional)AppBarState (optional)AppBarEdge (optional)Hdr (11 bytes): Eleven bytes. Common Window AltSec Order header, TS_WINDOW_ORDER_HEADER. The FieldsPresentFlags field of the header MUST conform to the values defined as follows.ValueMeaning0x01000000WINDOW_ORDER_TYPE_WINDOWIndicates a Windowing Alternate Secondary Drawing Order describing a window. This flag MUST be set.0x10000000WINDOW_ORDER_STATE_NEWIndicates that the Windowing Alternate Secondary Drawing Order contains information for a new window. If this flag is not set, the order contains information for an existing window.0x00000002WINDOW_ORDER_FIELD_OWNERIndicates that the OwnerWindowId field is present.0x00000008WINDOW_ORDER_FIELD_STYLEIndicates that the Style and ExtendedStyle fields are present.0x00000010WINDOW_ORDER_FIELD_SHOWIndicates that the ShowState field is present.0x00000004WINDOW_ORDER_FIELD_TITLEIndicates that the TitleInfo field is present.0x00004000WINDOW_ORDER_FIELD_CLIENTAREAOFFSETIndicates that the ClientOffsetX and ClientOffsetY fields are present.0x00010000WINDOW_ORDER_FIELD_CLIENTAREASIZEIndicates that the ClientAreaWidth and ClientAreaHeight fields are present. HYPERLINK \l "Appendix_A_3" \o "Product behavior note 3" \h <3>0x00000080WINDOW_ORDER_FIELD_RESIZE_MARGIN_XIndicates that the WindowLeftResizeMargin and WindowRightResizeMargin fields are present.0x08000000WINDOW_ORDER_FIELD_RESIZE_MARGIN_YIndicates that the WindowTopResizeMargin and WindowBottomResizeMargin fields are present.0x00020000WINDOW_ORDER_FIELD_RPCONTENTIndicates that the RPContent field is present. HYPERLINK \l "Appendix_A_4" \o "Product behavior note 4" \h <4>0x00040000WINDOW_ORDER_FIELD_ROOTPARENTIndicates that the RootParentHandle field is present. HYPERLINK \l "Appendix_A_5" \o "Product behavior note 5" \h <5>0x00000800WINDOW_ORDER_FIELD_WNDOFFSETIndicates that the WindowOffsetX and WindowOffsetY fields are present.0x00008000WINDOW_ORDER_FIELD_CLIENTDELTAIndicates that the WindowClientDeltaX and WindowClientDeltaY fields are present.0x00000400WINDOW_ORDER_FIELD_WNDSIZEIndicates that the WindowWidth and WindowHeight fields are present.0x00000100WINDOW_ORDER_FIELD_WNDRECTSIndicates that the NumWindowRects and WindowRects fields are present.0x00001000WINDOW_ORDER_FIELD_VISOFFSETIndicates that the VisibleOffsetX and VisibleOffsetY fields are present.0x00000200WINDOW_ORDER_FIELD_VISIBILITYIndicates that the NumVisibilityRects and VisibilityRects fields are present.0x00400000WINDOW_ORDER_FIELD_OVERLAY_DESCRIPTIONIndicates that the OverlayDescription field is present.0x00200000WINDOW_ORDER_FIELD_ICON_OVERLAY_NULLIndicates that a taskbar overlay icon previously set by the window has been removed.0x00800000WINDOW_ORDER_FIELD_TASKBAR_BUTTONIndicates that the TaskbarButton field is present.0x00080000WINDOW_ORDER_FIELD_ENFORCE_SERVER_ZORDERIndicates that the EnforceServerZOrder field is present.0x00000040WINDOW_ORDER_FIELD_APPBAR_STATEIndicates that the AppBarState field is present.0x00000001WINDOW_ORDER_FIELD_APPBAR_EDGEIndicates that the AppBarEdge field is present.OwnerWindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server that is the owner of the window specified in WindowId field of Hdr. For more information on owned windows, see [MSDN-WINFEATURE]. This field is present if and only if the WINDOW_ORDER_FIELD_OWNER flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.Style (4 bytes): An unsigned 32-bit integer. Describes the window's current style. Window styles determine the appearance and behavior of a window. For more information, see [MSDN-WINSTYLE]. This field is present if and only if the WINDOW_ORDER_FIELD_STYLE flag is set in the FieldsPresentFlags field of the TS_WINDOW_ORDER_HEADER. ExtendedStyle (4 bytes): An unsigned 32-bit integer. Extended window style information. For more information about extended window styles, see [MSDN-CREATEWINEX].This field is present if and only if the WINDOW_ORDER_FIELD_STYLE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.ShowState (1 byte): An unsigned 8-bit integer. Describes the show state of the window. This field is present if and only if the WINDOW_ORDER_FIELD_SHOW flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER. The field MUST be one of the following values.ValueMeaning0x00Do not show the window.0x02Show the window minimized.0x03Show the window maximized.0x05Show the window in its current size and position.TitleInfo (variable): UNICODE_STRING. Variable length. Contains the window's title string. This string is not guaranteed to be null-terminated. The maximum value for the CbString field of UNICODE_STRING is 520 bytes. This structure is present only if the WINDOW_ORDER_FIELD_TITLE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.ClientOffsetX (4 bytes): A 32-bit signed integer. The X (horizontal) offset from the top-left corner of the screen to the top-left corner of the window's client area, expressed in screen coordinates.This field is present only if the WINDOW_ORDER_FIELD_CLIENTAREAOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.ClientOffsetY (4 bytes): A 32-bit signed integer. The Y (vertical) offset from the top-left corner of the screen to the top-left corner of the window's client area, expressed in screen coordinates.This field is present only if the WINDOW_ORDER_FIELD_CLIENTAREAOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.ClientAreaWidth (4 bytes): An unsigned 32-bit integer specifying the width of the client area rectangle of the target window.This field only appears if the WndSupportLevel field of the Window List Capability Set message is set to TS_WINDOW_LEVEL_SUPPORTED_EX (as specified in section 2.2.1.1.2) and the WINDOW_ORDER_FIELD_CLIENTAREASIZE flag is set in the FieldsPresentFlags field of the TS_WINDOW_ORDER_HEADER packet (section 2.2.1.3.1.1).ClientAreaHeight (4 bytes): An unsigned 32-bit integer specifying the height of the client area rectangle of the target window.This field only appears if the WndSupportLevel field of the Window List Capability Set message is set to TS_WINDOW_LEVEL_SUPPORTED_EX (as specified in section 2.2.1.1.2) and the Hdr field has the WINDOW_ORDER_FIELD_CLIENTAREASIZE flag is set in the FieldsPresentFlags field of the TS_WINDOW_ORDER_HEADER packet (section 2.2.1.3.1.1).WindowLeftResizeMargin (4 bytes): An unsigned 32-bit integer specifying the width of the transparent hit-testable margin along the left edge of the window. Any mouse, pen, or touch input within this margin SHOULD be sent to the server.This field is present only if the WINDOW_ORDER_FIELD_RESIZE_MARGIN_X flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER. Resize margins SHOULD be used to extend the window geometry (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) and are not included in the window boundaries.WindowRightResizeMargin (4 bytes): An unsigned 32-bit integer specifying the width of the transparent hit-testable margin along the right edge of the window. Any mouse, pen or touch input within this margin SHOULD be sent to the server.This field is present only if the WINDOW_ORDER_FIELD_ RESIZE_MARGIN_X flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.Resize margins SHOULD be used to extend the window geometry (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) and are not included in the window boundaries.WindowTopResizeMargin (4 bytes): An unsigned 32-bit integer specifying the height of the transparent hit-testable margin along the top edge of the window. Any mouse, pen or touch input within this margin SHOULD be sent to the server.This field is present only if the WINDOW_ORDER_FIELD_ RESIZE_MARGIN_Y flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER. Resize margins SHOULD be used to extend the window geometry (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) and are not included in the window boundaries.WindowBottomResizeMargin (4 bytes): An unsigned 32-bit integer specifying the height of the transparent hit-testable margin along the bottom edge of the window. Any mouse, pen or touch input within this margin SHOULD be sent to the server.This field is present only if the WINDOW_ORDER_FIELD_ RESIZE_MARGIN_Y flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.Resize margins SHOULD be used to extend the window geometry (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) and are not included in the window boundaries.RPContent (1 byte): An unsigned BYTE that MUST be set to one of the following possible values.ValueMeaning0x00The window is not used by a render plug-in to do client-side rendering.0x01The window is used by a render plug-in to do client-side rendering.This field only appears if the WndSupportLevel field of the Window List Capability Set message is set to TS_WINDOW_LEVEL_SUPPORTED_EX (as specified in section 2.2.1.1.2) and the Hdr field has the WINDOW_ORDER_FIELD_RPCONTENT flag is set in the FieldsPresentFlags field of the TS_WINDOW_ORDER_HEADER packet (section 2.2.1.3.1.1).RootParentHandle (4 bytes): An unsigned 32-bit integer specifying the server-side target window's top-level parent window handle. A Top-Level parent window is the window immediately below "desktop" in the window hierarchy. If the target window is a top-level window, the window handle of the target window is sent.This field only appears if the WndSupportLevel field of the Window List Capability Set message is set to TS_WINDOW_LEVEL_SUPPORTED_EX (as specified in section 2.2.1.1.2) and the Hdr field has the WINDOW_ORDER_FIELD_ROOTPARENT flag is set in the FieldsPresentFlags field of the TS_WINDOW_ORDER_HEADER packet (section 2.2.1.3.1.1).WindowOffsetX (4 bytes): A 32-bit signed integer. The X (horizontal) offset from the top-left corner of the primary monitor to the top-left corner of the window, expressed in screen coordinates. This field is present only if the WINDOW_ORDER_FIELD_WNDOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowOffsetY (4 bytes): A 32-bit signed integer. The Y (vertical) offset from the top-left corner of the primary monitor to the top-left corner of the window, expressed in screen coordinates. This field is present only if the WINDOW_ORDER_FIELD_WNDOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowClientDeltaX (4 bytes): A 32-bit signed integer. The X (horizontal) delta between the top-left corner of the window and the window's client area. This field is present only if the WINDOW_ORDER_FIELD_CLIENTDELTA flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowClientDeltaY (4 bytes): A 32-bit signed integer. The Y (vertical) delta between the top-left corner of the window and the window's client area.This field is present only if the WINDOW_ORDER_FIELD_CLIENTDELTA flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowWidth (4 bytes): An unsigned 32-bit integer. The window width, in screen coordinates.This field is present only if the WINDOW_ORDER_FIELD_WNDSIZE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowHeight (4 bytes): An unsigned 32-bit integer. The window height, in screen coordinates.This field is present only if the WINDOW_ORDER_FIELD_WNDSIZE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.NumWindowRects (2 bytes): An unsigned 16-bit integer. A count of rectangles describing the window geometry.This field is present only if the WINDOW_ORDER_FIELD_WNDRECTS flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.WindowRects (variable): An array of TS_RECTANGLE_16 structures, NumWindowRects wide, describing the window geometry. All coordinates are window coordinates. This field is present only if the NumWindowRects field is greater than 0 and the WINDOW_ORDER_FIELD_WNDRECTS flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.VisibleOffsetX (4 bytes): A 32-bit signed integer. The X (horizontal) offset from the top-left corner of the screen to the top-left corner of the window visible region's bounding rectangle, expressed in screen coordinates. HYPERLINK \l "Appendix_A_6" \o "Product behavior note 6" \h <6> This field is present only if the WINDOW_ORDER_FIELD_VISOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.VisibleOffsetY (4 bytes): A 32-bit signed integer. The Y (vertical) offset from the top-left corner of the screen to the top-left corner of the window visible region's bounding rectangle, expressed in screen coordinates. HYPERLINK \l "Appendix_A_7" \o "Product behavior note 7" \h <7> This field is present only if the WINDOW_ORDER_FIELD_VISOFFSET flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.NumVisibilityRects (2 bytes): An unsigned 16-bit integer. A count of rectangles describing the window visible region. This field is present only if the WINDOW_ORDER_FIELD_VISIBILITY flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.VisibilityRects (variable): An array of TS_RECTANGLE_16 structures, NumVisibilityRects wide, describing the window visible region. All coordinates are window coordinates. This field is present only if the value of the NumVisibilityRects field is greater than 0 and the WINDOW_ORDER_FIELD_VISIBILITY flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.OverlayDescription (variable, optional): A variable length UNICODE_STRING (section 2.2.1.2.1) that contains the description text for the window's overlay icon (see sections 2.2.1.3.1.2.2 and 2.2.1.3.1.2.3).This field is present only if the WINDOW_ORDER_FIELD_OVERLAY_DESCRIPTION flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.TaskbarButton (1 byte, optional): An 8-bit unsigned integer. If this field is set to 0x00, then the client SHOULD add a tab to the taskbar button group for the window, if supported by the operating system, instead of adding a new taskbar button for the window. If this field is set to 0x01, then the client SHOULD remove the tab from the taskbar button group for the window.Windows share a taskbar button group if they have matching Application IDs, as specified by the Server Get Application ID Response PDU (section 2.2.2.8.1).This field is present only if the WINDOW_ORDER_FIELD_TASKBAR_BUTTON flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.EnforceServerZOrder (1 byte, optional): An 8-bit unsigned integer. If this field is set to 0x01, then the client SHOULD order this window, and all other windows in the Z-order list (in the Actively Monitored Desktop packet, as specified in section 2.2.1.3.3.2.1) that also have the field set consecutively per the Z-order hierarchy. The client SHOULD NOT attempt to reorder these windows with respect to each other, or to move any window between the windows in this group.If this field is set to 0x00, then no special Z-order handling is required.This field is present only if the WINDOW_ORDER_FIELD_ENFORCE_SERVER_ZORDER flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.AppBarState (1 byte, optional): An 8-bit unsigned integer. If this field is set to 0x01, then the window SHOULD be registered as an application desktop toolbar. If this field is set to 0x00, then the application desktop toolbar SHOULD be deregistered.This field is present only if the WINDOW_ORDER_FIELD_APPBAR_STATE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.AppBarEdge (1 byte, optional): An 8-bit unsigned integer. The value of this field indicates the edge to which the application desktop toolbar SHOULD be anchored. This field MUST be set to one of the following possible values.ValueMeaning0x00Anchor to the left edge.0x01Anchor to the top edge.0x02Anchor to the right edge.0x03Anchor to the bottom edge.This field is present only if the WINDOW_ORDER_FIELD_APPBAR_EDGE flag is set in the FieldsPresentFlags field of TS_WINDOW_ORDER_HEADER.Window Icon XE "Window_Icon packet"The Window Icon packet is a Window Information Order generated by the server when a new or existing window sets or updates its associated icon.Icons are created by combining two bitmaps of the same size. The mask bitmap is always 1 bpp, although the color depth of the color bitmap can vary. The color bitmap can have an associated color table.01234567891012345678920123456789301Hdr......IconInfo (variable)...Hdr (11 bytes): Eleven bytes. A TS_WINDOW_ORDER_HEADER structure. The FieldsPresentFlags field of the header MUST be constructed using the following values.ValueMeaning0x01000000WINDOW_ORDER_TYPE_WINDOWIndicates a Windowing Alternate Secondary Drawing Order that describes a window. This flag MUST be set.0x10000000WINDOW_ORDER_STATE_NEWIndicates that the Windowing Alternate Secondary Drawing Order contains information for a new window. If this flag is not set, the order contains information for an existing window.0x40000000WINDOW_ORDER_ICONIndicates that the order contains icon information for the window. This flag MUST be set.0x00002000WINDOW_ORDER_FIELD_ICON_BIGIndicates that the large version of the icon is being sent. If this flag is not present, the icon is a small icon. HYPERLINK \l "Appendix_A_8" \o "Product behavior note 8" \h <8>0x00100000WINDOW_ORDER_FIELD_ICON_OVERLAYIndicates that the overlay icon for the window is being sent. If this flag is not present, the icon is an application icon.IconInfo (variable): Variable length. TS_ICON_INFO structure. Describes the window's icon.Cached Icon XE "Cached_Icon packet"The Cached Icon Window Information Order is generated by the server when a new or existing window sets or updates the icon in its title bar or in the Alt-Tab dialog box. If the icon information was transmitted by the server in a previous Window Information Order or Notification Icon Information Order in the same session, and the icon was cacheable (that is, the server specified a cacheEntry and cacheId for the icon), the server reports the icon cache entries to avoid sending duplicate information.01234567891012345678920123456789301Hdr......CachedIcon...Hdr (11 bytes): Eleven bytes. A TS_WINDOW_ORDER_HEADER structure. The FieldsPresentFlags field of the header MUST conform to the values defined as follows.ValueDescription0x01000000WINDOW_ORDER_TYPE_WINDOWIndicates a Windowing Alternate Secondary Drawing Order that describes a window. This flag MUST be set.0x10000000WINDOW_ORDER_STATE_NEWIndicates that the Windowing Alternate Secondary Drawing Order contains information for a new window. If this flag is not set, the order contains information for an existing window.0x80000000WINDOW_ORDER_CACHEDICONIndicates that the order contains cached icon information for the window. This flag MUST be set.0x00002000WINDOW_ORDER_FIELD_ICON_BIGIndicates that the large version of the icon is being referred to. If this flag is not present, the icon is a small icon. HYPERLINK \l "Appendix_A_9" \o "Product behavior note 9" \h <9>0x00100000WINDOW_ORDER_FIELD_ICON_OVERLAYIndicates that the overlay icon for the window is being referred to. If this flag is not present, the icon is an application icon.CachedIcon (3 bytes): Three bytes. TS_CACHED ICON_INFO structure. Describes a cached icon on the client.Deleted Window XE "Deleted_Window packet"The Deleted Window Information Order is generated by the server whenever an existing window is destroyed on the server.01234567891012345678920123456789301Hdr......Hdr (11 bytes): Eleven bytes. A TS_WINDOW_ORDER_HEADER structure. The FieldsPresentFlags field of the header MUST be constructed using the following values.ValueMeaning0x01000000WINDOW_ORDER_TYPE_WINDOWIndicates a Windowing Alternate Secondary Drawing Order describing a window. This flag MUST be set.0x20000000WINDOW_ORDER_STATE_DELETEDIndicates that the window is deleted. If this flag is set, the order MUST NOT contain any other information.Notification Icon Information XE "Notification icon"Notification Icon Information orders specify the state of the notification icon on the mon Header (TS_NOTIFYICON_ORDER_HEADER) XE "TS_NOTIFYICON_ORDER_HEADER packet"The TS_NOTIFYICON_ORDER_HEADER packet contains information common to every Windowing Alternate Secondary Drawing Order specifying a notification icon.01234567891012345678920123456789301HeaderOrderSizeFieldsPresentFlags...WindowId...NotifyIconId...Header (1 byte): An unsigned 8-bit integer. An Alternate Secondary Order Header, as specified in [MS-RDPEGDI] section 2.2.2.2.1.3.1.1. The embedded orderType field MUST be set to 0x0B (TS_ALTSEC_WINDOW).OrderSize (2 bytes): An unsigned 16-bit integer. The size, in bytes, of the entire packet.FieldsPresentFlags (4 bytes): An unsigned 32-bit integer. The flags indicating which fields are present in the packet. See New or Existing Notification Icons.WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window owning the notification icon specified in the drawing order. The ID is generated by the server and is unique for every window in the session.NotifyIconId (4 bytes): An unsigned 32-bit integer. The ID of the notification icon specified in the drawing order. The ID is generated by the application that owns the notification icon and SHOULD be unique for every notification icon owned by the application.OrdersNew or Existing Notification Icons XE "Notification_Icon_Information_Order packet"The Notification Icon Information Order packet is generated by the server whenever a new notification icon is created on the server or when an existing notification icon is updated.01234567891012345678920123456789301Hdr (15 bytes).........Version (optional)...ToolTip (variable)...InfoTip (variable)...State (optional)Icon (variable)...CachedIcon (optional)Hdr (15 bytes): A TS_NOTIFYICON_ORDER_HEADER structure. Common AltSec Order header. The FieldsPresentFlags field of the header MUST conform to the values defined as follows.ValueMeaningWINDOW_ORDER_TYPE_NOTIFY0x02000000Indicates a Windowing Alternate Secondary Drawing Order specifying a notification icon. This flag MUST be set.WINDOW_ORDER_STATE_NEW0x10000000Indicates that the Windowing Alternate Secondary Drawing Order contains information for a new notification icon. If this flag is set, one of the Icon and CachedIcon fields MUST be present. If this flag is not set, the Windowing Alternate Secondary Drawing Order contains information for an existing notification icon.WINDOW_ORDER_FIELD_NOTIFY_VERSION0x00000008Indicates that the Version field is present.WINDOW_ORDER_FIELD_NOTIFY_TIP0x00000001Indicates that the ToolTip field is present.WINDOW_ORDER_FIELD_NOTIFY_INFO_TIP0x00000002Indicates that the InfoTip field is present.WINDOW_ORDER_FIELD_NOTIFY_STATE0x00000004Indicates that the State field is present.WINDOW_ORDER_ICON0x40000000Indicates that the Icon field is present. Either the Icon or the CachedIcon field SHOULD be present, but not both.WINDOW_ORDER_CACHED_ICON0x80000000Indicates that the CachedIcon field is present. Either the Icon or the CachedIcon field SHOULD be present, but not both. HYPERLINK \l "Appendix_A_10" \o "Product behavior note 10" \h <10>Version (4 bytes): An unsigned 32-bit integer. Specifies the behavior of the notification icons. This field is present only if the WINDOW_ORDER_FIELD_NOTIFY_VERSION flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_HEADER. This field MUST be set to one of the following values.ValueMeaning0Use this value for applications designed for Windows NT 4.0 operating system.3Use the Windows 2000 operating system notification icons behavior. Use this value for applications designed for Windows 2000 and Windows XP operating system.4Use the current behavior. Use this value for applications designed for Windows Vista operating system and Windows 7 operating system.For more information about notification icons, see [MSDN-SHELLNOTIFY], the Remarks section.ToolTip (variable): Variable length. UNICODE_STRING. Specifies the text of the notification icon tooltip. This structure is present only if the WINDOW_ORDER_FIELD_NOTIFY_TIP flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_Tip (variable): Variable length. A TS_NOTIFY_ICON_INFOTIP structure. Specifies the notification icon’s balloon tooltip. This field SHOULD NOT be present for icons that follow Windows 95 operating system behavior (Version = 0). This structure is present only if the WINDOW_ORDER_FIELD_NOTIFY_INFO_TIP flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_HEADER.State (4 bytes): Unsigned 32-bit integer. Specifies the state of the notification icon. This field SHOULD NOT be present for icons that follow Windows 95 behavior (Version = 0).This field is present only if the WINDOW_ORDER_FIELD_NOTIFY_STATE flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_HEADER.ValueMeaning1The notification icon is hidden.Icon (variable): Variable length. A TS_ICON_INFO structure. Specifies the notification icon’s image. This structure is present only if the WINDOW_ORDER_ICON flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_HEADER.A Notification Icon Order MUST NOT contain both an Icon field and a CachedIcon field. If the WINDOW_ORDER_STATE_NEW flag is set, either the Icon field or the CachedIcon field MUST be present.CachedIcon (3 bytes): Three bytes. A TS_CACHED_ICON_INFO structure. Specifies the notification icon as a cached icon on the client.This structure is present only if the WINDOW_ORDER_CACHEDICON flag is set in the FieldsPresentFlags field of TS_NOTIFYICON_ORDER_HEADER. Only one of Icon and CachedIcon fields SHOULD be present in the Notification Icon Order. If the WINDOW_ORDER_STATE_NEW flag is set, only one of these fields MUST be present.Deleted Notification Icons XE "Deleted_Notification_Icon packet"The server generates a Notification Icon Information?(section?2.2.1.3.2) order packet whenever an existing notification icon is deleted on the server.01234567891012345678920123456789301Hdr (15 bytes).........Hdr (15 bytes): A TS_NOTIFYICON_ORDER_HEADER (section 2.2.1.3.2.1) structure. The FieldsPresentFlags field of the header MUST be constructed using the following values.ValueMeaning0x02000000WINDOW_ORDER_TYPE_NOTIFYIndicates an order specifying a notification icon. This flag MUST be set.0x20000000WINDOW_ORDER_STATE_DELETEDIndicates that the window is deleted. This flag MUST be set, and the order MUST NOT contain any other information.Notification Icon Balloon Tooltip (TS_NOTIFY_ICON_INFOTIP) XE "TS_NOTIFY_ICON_INFOTIP packet"The TS_NOTIFY_ICON_INFOTIP structure specifies the balloon tooltip of a notification icon.01234567891012345678920123456789301TimeoutInfoFlagsInfoTipText (variable)...Title (variable)...Timeout (4 bytes): An unsigned 32-bit integer. The timeout in milliseconds for the notification icon’s balloon tooltip. After the specified timeout, the tooltip SHOULD be destroyed. HYPERLINK \l "Appendix_A_11" \o "Product behavior note 11" \h <11>InfoFlags (4 bytes): An unsigned 32-bit integer. The flags that can be set to add an icon to a balloon tooltip. It is placed to the left of the title. If the InfoTipText field length is zero-length, the icon is not shown.ValueMeaningNIIF_NONE0x00000000Do not show an icon.NIIF_INFO0x00000001Show an informational icon next to the balloon tooltip text.NIIF_WARNING0x00000002Show a warning icon next to the balloon tooltip text.NIIF_ERROR0x00000003Show an error icon next to the balloon tooltip text.NIIF_NOSOUND0x00000010Do not play an associated sound.NIIF_LARGE_ICON0x00000020Show the large version of the TipText (variable): Variable length. A UNICODE_STRING specifying the text of the balloon tooltip. The maximum length of the tooltip text string is 510 bytes.Title (variable): Variable length. A UNICODE_STRING specifying the title of the balloon tooltip. The maximum length of the tooltip title string is 126 bytes.Desktop Information XE "Desktop"Desktop Information Orders specify the state of the desktop on the mon Header (TS_DESKTOP_ORDER_HEADER) XE "TS_DESKTOP_ORDER_HEADER packet"The TS_DESKTOP_ORDER_HEADER packet contains information common to every order specifying the desktop.01234567891012345678920123456789301HeaderOrderSizeFieldsPresentFlags...Header (1 byte): An unsigned 8-bit integer. An Alternate Secondary Order Header, as specified in [MS-RDPEGDI] section 2.2.2.2.1.3.1.1. The embedded orderType field MUST be set to 0x0B (TS_ALTSEC_WINDOW).OrderSize (2 bytes): An unsigned 16-bit integer. The size of the entire packet in bytes.FieldsPresentFlags (4 bytes): An unsigned 32-bit integer. The flags indicating which fields are present in the packet. See Actively Monitored Desktop for values and use.OrdersActively Monitored Desktop XE "Actively_Monitored_Desktop packet"The Actively Monitored Desktop packet contains information about the actively monitored desktop.01234567891012345678920123456789301Hdr...ActiveWindowId (optional)...NumWindowIds (optional)WindowIds (variable)...Hdr (7 bytes): Seven bytes. A TS_DESKTOP_ORDER_HEADER header. The FieldsPresentFlags field of the header MUST be constructed using the following values.ValueMeaning0x04000000WINDOW_ORDER_TYPE_DESKTOPIndicates an order specifying a desktop. This flag MUST be set.0x00000002WINDOW_ORDER_FIELD_DESKTOP_HOOKEDIndicates that the server will be sending information for the server's current input desktop.0x00000008WINDOW_ORDER_FIELD_DESKTOP_ARC_BEGANIndicates that the server is beginning to synchronize information with the client after the client has auto-reconnected or the server has just begun monitoring a new desktop. If this flag is set, the WINDOW_ORDER_FIELD_DESKTOP_HOOKED flag MUST also be set.0x00000004WINDOW_ORDER_FIELD_DESKTOP_ARC_COMPLETEDIndicates that the server has finished synchronizing data after the client has auto-reconnected or the server has just begun monitoring a new desktop. The client SHOULD assume that any window or shell notification icon not received during the synchronization is discarded. This flag MUST only be combined with the WINDOW_ORDER_TYPE_DESKTOP flag.0x00000020WINDOW_ORDER_FIELD_DESKTOP_ACTIVEWNDIndicates that the ActiveWindowId field is present.0x00000010WINDOW_ORDER_FIELD_DESKTOP_ZORDERIndicates that the NumWindowIds field is present. If the NumWindowIds field has a value greater than 0, the WindowIds field MUST also be present.ActiveWindowId (4 bytes): Optional. An unsigned 32-bit integer. The ID of the currently active window on the server. This field is present if and only if the WINDOW_ORDER_FIELD_DESKTOP_ACTIVEWND flag is set in the FieldsPresentFlags field of the TS_DESKTOP_ORDER_HEADER packet (section 2.2.1.3.3.1).NumWindowIds (1 byte): Optional. An unsigned 8-bit integer. The number of top-level windows on the server. This field is present if and only if the WINDOW_ORDER_FIELD_DESKTOP_ZORDER flag is set in the FieldsPresentFlags field of the TS_DESKTOP_ORDER_HEADER packet (section 2.2.1.3.3.1).WindowIds (variable): Variable length. An array of 4-byte window IDs, corresponding to the IDs of the top-level windows on the server, ordered by their Z-order on the server. The number of window IDs in the array is equal to the value of the NumWindowIds field.This field is present if and only if the NumWindowIds field is greater than 0 and the WINDOW_ORDER_FIELD_DESKTOP_ZORDER flag is set in the FieldsPresentFlags field of the TS_DESKTOP_ORDER_HEADER packet (section 2.2.1.3.3.1). Non-Monitored Desktop XE "Non_monitored_Desktop packet"The Non-Monitored Desktop packet is generated by the server when it is not actively monitoring the current desktop on the server.01234567891012345678920123456789301Hdr...Hdr (7 bytes): Seven bytes. A TS_DESKTOP_ORDER_HEADER header. The FieldsPresentFlags field of the header MUST be constructed using the following values.ValueMeaning0x04000000WINDOW_ORDER_TYPE_DESKTOPIndicates an order specifying a desktop. This flag MUST be set.0x00000001WINDOW_ORDER_FIELD_DESKTOP_NONEIndicates that the server will not be sending information for the server's current input desktop. This flag MUST be set.Static Virtual Channel Protocol XE "Messages:Static Virtual Channel Protocol" XE "Static Virtual Channel Protocol message" XE "Static Virtual Channel:messages" XE "Messages:Static Virtual Channel"The RAIL Static Virtual Channel (named "RAIL") is responsible for communicating non–RDP specific data between the RAIL client and server. The following sections outline the messages that are transmitted over the virtual mon Header (TS_RAIL_PDU_HEADER) XE "TS_RAIL_PDU_HEADER packet"The TS_RAIL_PDU_HEADER packet contains information common to every RAIL Virtual Channel PDU.01234567891012345678920123456789301orderTypeorderLengthorderType (2 bytes): An unsigned 16-bit integer. The type of the Virtual Channel message; MUST be set to one of the following values.ValueMeaningTS_RAIL_ORDER_EXEC0x0001Indicates a Client Execute PDU from client to server.TS_RAIL_ORDER_ACTIVATE0x0002Indicates a Client Activate PDU from client to server.TS_RAIL_ORDER_SYSPARAM0x0003Indicates a Client System Parameters Update PDU from client to server or a Server System Parameters Update PDU from server to client.TS_RAIL_ORDER_SYSCOMMAND0x0004Indicates a Client System Command PDU from client to server.TS_RAIL_ORDER_HANDSHAKE0x0005Indicates a bi-directional Handshake PDU.TS_RAIL_ORDER_NOTIFY_EVENT0x0006Indicates a Client Notify Event PDU from client to server.TS_RAIL_ORDER_WINDOWMOVE0x0008Indicates a Client Window Move PDU from client to server.TS_RAIL_ORDER_LOCALMOVESIZE0x0009Indicates a Server Move/Size Start PDU and a Server Move/Size End PDU from server to client.TS_RAIL_ORDER_MINMAXINFO0x000aIndicates a Server Min Max Info PDU from server to client.TS_RAIL_ORDER_CLIENTSTATUS0x000bIndicates a Client Information PDU from client to server.TS_RAIL_ORDER_SYSMENU0x000cIndicates a Client System Menu PDU from client to server.TS_RAIL_ORDER_LANGBARINFO0x000dIndicates a Server Language Bar Information PDU from server to client, or a Client Language Bar Information PDU from client to server. TS_RAIL_ORDER_EXEC_RESULT0x0080Indicates a Server Execute Result PDU from server to client.TS_RAIL_ORDER_GET_APPID_REQ0x000EIndicates a Client Get Application ID PDU from client to server.TS_RAIL_ORDER_GET_APPID_RESP0x000FIndicates a Server Get Application ID Response PDU from server to client.TS_RAIL_ORDER_TASKBARINFO0x0010Indicates a Taskbar Tab Info PDU (section 2.2.2.14.1) from server to client.TS_RAIL_ORDER_LANGUAGEIMEINFO0x0011Indicates a Language Profile Information PDU from client to serverTS_RAIL_ORDER_COMPARTMENTINFO0x0012Indicates a bi-directional Compartment Status Information PDU.TS_RAIL_ORDER_HANDSHAKE_EX0x0013Indicates a HandshakeEx PDU from server to client.TS_RAIL_ORDER_ZORDER_SYNC0x0014Indicates a Server Z-Order Sync Information PDU from server to client.TS_RAIL_ORDER_CLOAK0x0015Indicates a Window Cloak State Change PDU from client to server.TS_RAIL_ORDER_POWER_DISPLAY_REQUEST0x0016Indicates a Power Display Request PDU (section 2.2.2.13.1) from server to client.TS_RAIL_ORDER_SNAP_ARRANGE0x0017Indicates a Client Window Snap PDU (section 2.2.2.7.5) from client to server.TS_RAIL_ORDER_GET_APPID_RESP_EX0x0018Indicates a Server Get Application ID Extended Response PDU (section 2.2.2.8.2) from server to client.TS_RAIL_ORDER_TEXTSCALEINFO0x0019Indicates a Text Scale Information PDU (section 2.2.2.15.1) from client to server.TS_RAIL_ORDER_CARETBLINKINFO0x001AIndicates a Caret Blink Information PDU (section 2.2.2.15.2) from client to server.orderLength (2 bytes): An unsigned 16-bit integer. The length of the Virtual Channel PDU, in bytes.Initialization Messages XE "Initialization messages"Initialization messages are exchanged between client and server at the start of a RAIL session.Handshake PDU (TS_RAIL_ORDER_HANDSHAKE) XE "TS_RAIL_ORDER_HANDSHAKE packet"The Handshake PDU is exchanged between the server and the client to establish that both endpoints are ready to begin RAIL mode. The server sends the Handshake PDU and the client responds with the Handshake PDU.01234567891012345678920123456789301headerbuildNumberheader (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to 0x0005 (TS_RAIL_ORDER_HANDSHAKE). buildNumber (4 bytes): An unsigned 32-bit integer. The build or version of the sending party.Client Information PDU (TS_RAIL_ORDER_CLIENTSTATUS) XE "TS_RAIL_ORDER_CLIENTSTATUS packet"The Client Information PDU is sent from client to server and contains information about RAIL client state and features supported by the client.01234567891012345678920123456789301headerFlagsheader (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of header MUST be set to 0x000b (TS_RAIL_ORDER_CLIENTSTATUS).Flags (4 bytes): An unsigned 32-bit integer. RAIL features that are supported by the client; MUST be set to one or more of the following feature flags, or zero if none of the features are supported.ValueMeaningTS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE0x00000001Indicates that the client supports the local move/size RAIL feature.TS_RAIL_CLIENTSTATUS_AUTORECONNECT0x00000002Indicates that the client is auto-reconnecting to the server after an unexpected disconnect of the session.TS_RAIL_CLIENTSTATUS_ZORDER_SYNC0x00000004Indicates that the client supports Z-order sync using the Z-Order Sync Information PDU (section 2.2.2.11.1).TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED0x00000010Indicates that the client supports resize margins using the Window Information PDU (section 2.2.1.3.1).TS_RAIL_CLIENTSTATUS_HIGH_DPI_ICONS_SUPPORTED0x00000020Indicates that the client supports icons up to 96×96 pixels in size in the Window Icon PDU (section 2.2.1.3.1.2.2). If this flag is not present, icon dimensions are limited to 32×32 pixels.TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED0x00000040Indicates that the client supports application desktop toolbar remoting using the Window Information PDU (section 2.2.1.3.1).TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED0x00000080Indicates that the client supports display-required power requests sent using the Power Display Request PDU (section 2.2.2.13.1).TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED0x00000200Indicates that the client is capable of processing Window Cloak State Change PDUs (section 2.2.2.12.1) sent by the server.HandshakeEx PDU (TS_RAIL_ORDER_HANDSHAKE_EX) XE "HandshakeEx PDU (TS_RAIL_ORDER_HANDSHAKE) packet"The HandshakeEx PDU (instead of the Handshake PDU) is sent from the server to the client if both the client and the server specified support for it by including the TS_RAIL_LEVEL_HANDSHAKE_EX_SUPPORTED flag in the Remote Programs Capability Set (section 2.2.1.1.1). This PDU is also sent by the server in an Enhanced RemoteApp session to signal that it is ready to begin Enhanced RemoteApp mode. The server sends the HandshakeEx PDU, and the client responds with the Handshake PDU (section 2.2.2.2.1).01234567891012345678920123456789301headerbuildNumberrailHandshakeFlagsheader (4 bytes): A TS_RAIL_PDU_HEADER (section 2.2.2.1) structure. The orderType field of the header MUST be set to 0x0013 (TS_RAIL_ORDER_HANDSHAKE_EX).buildNumber (4 bytes): An unsigned 32-bit integer. The build or version of the sending party.railHandshakeFlags (4 bytes): An unsigned 32-bit integer. Flags for setting up RAIL session parameters.FlagMeaningTS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF0x00000001Indicates that Enhanced RemoteApp (section 1.3.3) is supported. This implies support for the Remote Desktop Protocol: Graphics Pipeline Extension ([MS-RDPEGFX] section 1.5), specifically the RDPGFX_MAP_SURFACE_TO_WINDOW_PDU ([MS-RDPEGFX] section 2.2.2.20) message.TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED0x00000002Indicates that additional system parameter flags are supported in the Client System Parameters Update PDU (section 2.2.2.4.1).TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED0x00000004Indicates that the server supports the Client Window Snap PDU (section 2.2.2.7.5).TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_TEXT_SCALE_SUPPORTED0x00000008Indicates that the server supports the Text Scale Information PDU (section 2.2.2.15.1).TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_CARET_BLINK_SUPPORTED0x00000010Indicates that the server supports the Caret Blink Information PDU (section 2.2.2.15.2).Program Launching Messages XE "Program launching messages"Client Execute PDU (TS_RAIL_ORDER_EXEC) XE "TS_RAIL_ORDER_EXEC packet" XE "Program launching messages" XE "Program launching messages"The Client Execute PDU is sent from a client to a server to request that a remote application launch on the server.01234567891012345678920123456789301headerFlagsExeOrFileLengthWorkingDirLengthArgumentsLenExeOrFile (variable)...WorkingDir (variable)...Arguments (variable)...header (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to 0x0001 (TS_RAIL_ORDER_EXEC).Flags (2 bytes): An unsigned 16-bit integer. Specifies a bit field of flags that indicate modifications to the Client Execute PDU fields.01234567891012345ABCDE00000000000Where the bits are defined as:ValueDescriptionATS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORYThe environment variables in the WorkingDir field MUST be expanded on the server.BTS_RAIL_EXEC_FLAG_TRANSLATE_FILESThe drive letters in the file path MUST be converted to corresponding mapped drives on the server. This flag MUST NOT be set if the TS_RAIL_EXEC_FLAG_FILE (0x0004) flag is not set.CTS_RAIL_EXEC_FLAG_FILEIf this flag is set, the ExeOrFile field refers to a file path. If it is not set, the ExeOrFile field refers to an executable.DTS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTSThe environment variables in the Arguments field MUST be expanded on the server.ETS_RAIL_EXEC_FLAG_APP_USER_MODEL_IDIf this flag is set, the ExeOrFile field refers to an application user model ID. If it is not set, the ExeOrFile field refers to a file path. This flag MUST be ignored if the TS_RAIL_EXEC_FLAG_FILE (0x0004) flag is set. An application user model ID is a string that uniquely identifies an application, regardless of where the application is installed on the operating system. The string can be used to identify Windows Store applications as well as desktop applications.ExeOrFileLength (2 bytes): An unsigned 16-bit integer. Specifies the length of the ExeOrFile field in bytes. The length MUST be nonzero. The maximum length is 520 bytes.WorkingDirLength (2 bytes): An unsigned 16-bit integer. Specifies the length of the WorkingDir field, in bytes. The minimum length is 0, and the maximum length is 520 bytes.ArgumentsLen (2 bytes): An unsigned 16-bit integer. Specifies the length of the Arguments field, in bytes. The minimum length is 0, and the maximum length is 16,000 bytes. HYPERLINK \l "Appendix_A_12" \o "Product behavior note 12" \h <12>ExeOrFile (variable): A non-null-terminated string of Unicode characters. Variable length. Specifies the executable, file path, or application user model ID to be launched on the server. This field MUST be present. The maximum length of this field, including file path translations (see TS_RAIL_EXEC_FLAG_TRANSLATE_FILES mask of Flags field), is 520 bytes.WorkingDir (variable): Optional non-null-terminated string of Unicode characters. Variable length. Specifies the working directory of the launched ExeOrFile field. If the WorkingDirLength field is 0, this field MUST NOT be present; otherwise, it MUST be present. The maximum length of this field, including expanded environment variables (see TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY mask of Flags field), is 520 bytes.Arguments (variable): Optional non-null-terminated string of Unicode characters. Variable length. Specifies the arguments to the ExeOrFile field. If the ArgumentsLen field is 0, this field MUST NOT be present; otherwise, it MUST be present. The maximum length of this field, including expanded environment variables (see TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS mask of Flags field), is 16,000 bytes.Server Execute Result PDU (TS_RAIL_ORDER_EXEC_RESULT) XE "TS_RAIL_ORDER_EXEC_RESULT packet"The Server Execute Result PDU is sent from server to client in response to a Client Execute PDU request, and contains the result of the server's attempt to launch the requested executable.01234567891012345678920123456789301headerFlagsExecResultRawResultPaddingExeOrFileLengthExeOrFile (variable)...header (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_EXEC_RESULT (0x0080). Flags (2 bytes): An unsigned 16-bit integer. Identical to the Flags field of the Client Execute PDU. The server sets this field to enable the client to match the Client Execute PDU with the Server Execute Result PDU.ExecResult (2 bytes): An unsigned 16-bit integer. The result of the Client Execute PDU. This field MUST be set to one of the following values.ValueMeaningRAIL_EXEC_S_OK0x0000The Client Execute request was successful and the requested application or file has been launched.RAIL_EXEC_E_HOOK_NOT_LOADED0x0001The Client Execute request could not be satisfied because the server is not monitoring the current input desktop.RAIL_EXEC_E_DECODE_FAILED0x0002The Execute request could not be satisfied because the request PDU was malformed.RAIL_EXEC_E_NOT_IN_ALLOWLIST0x0003The Client Execute request could not be satisfied because the requested application was blocked by policy from being launched on the server.RAIL_EXEC_E_FILE_NOT_FOUND0x0005The Client Execute request could not be satisfied because the application or file path could not be found.RAIL_EXEC_E_FAIL0x0006The Client Execute request could not be satisfied because an unspecified error occurred on the server.RAIL_EXEC_E_SESSION_LOCKED0x0007The Client Execute request could not be satisfied because the remote session is locked.RawResult (4 bytes): An unsigned 32-bit integer. Contains an operating system-specific return code for the result of the Client Execute request. HYPERLINK \l "Appendix_A_13" \o "Product behavior note 13" \h <13>Padding (2 bytes): An unsigned 16-bit integer. Not used.ExeOrFileLength (2 bytes): An unsigned 16-bit integer. Specifies the length of the ExeOrFile field in bytes. The length MUST be nonzero. The maximum length is 520 bytes.ExeOrFile (variable): The executable or file that was attempted to be launched. This field is copied from the ExeOrFile field of the Client Execute PDU. The server sets this field to enable the client to match the Client Execute PDU with the Server Execute Result PDU.Local Client System Parameters Update Messages XE "Local client system parameters update messages"Client System Parameters Update PDU (TS_RAIL_ORDER_SYSPARAM) XE "TS_RAIL_ORDER_SYSPARAM packet"The Client System Parameters Update PDU is sent from the client to the server to synchronize system parameters on the server with those on the client.01234567891012345678920123456789301headerSystemParamBody (variable)...header (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of header MUST be set to TS_RAIL_ORDER_SYSPARAM(0x0003). SystemParam (4 bytes): An unsigned 32-bit integer. The type of system parameter being transmitted. The field MUST be set to one of the following values.ValueMeaningSPI_SETDRAGFULLWINDOWS0x00000025The system parameter for full-window drag.SPI_SETKEYBOARDCUES0x0000100BThe system parameter to determine whether menu access keys are always underlined.SPI_SETKEYBOARDPREF0x00000045The system parameter specifying a preference for the keyboard instead of the mouse.SPI_SETWORKAREA0x0000002FThe system parameter to set the size of the work area. The work area is the portion of the screen not obscured by the system taskbar or by application desktop toolbars.RAIL_SPI_DISPLAYCHANGE0x0000F001The system parameter for display resolution.SPI_SETMOUSEBUTTONSWAP0x00000021The system parameter to swap or restore the meaning of the left and right mouse buttons.RAIL_SPI_TASKBARPOS0x0000F000The system parameter to indicate the size of the client taskbar.SPI_SETHIGHCONTRAST0x00000043The system parameter to set the parameters of the HighContrast accessibility feature.SPI_SETCARETWIDTH0x00002007The system parameter to set the caret width used for text entry controls. This flag SHOULD NOT be sent if the server did not advertise the EXTENDED_SPI_SUPPORTED flag in the HandshakeEx PDU (section 2.2.2.2.3).SPI_SETSTICKYKEYS0x0000003BThe system parameter to set the parameters of the Sticky Keys accessibility feature. This flag SHOULD NOT be sent if the server did not advertise the EXTENDED_SPI_SUPPORTED flag in the HandshakeEx PDU.SPI_SETTOGGLEKEYS0x00000035The system parameter to set the parameters of the Toggle Keys accessibility feature. This flag SHOULD NOT be sent if the server did not advertise the EXTENDED_SPI_SUPPORTED flag in the HandshakeEx PDU.SPI_SETFILTERKEYS0x00000033The system parameter to set the parameters of the Filter Keys accessibility feature. This flag SHOULD NOT be sent if the server did not advertise the EXTENDED_SPI_SUPPORTED flag in the HandshakeEx PDU.Body (variable): The contents of this field depend on the SystemParam field. The following table outlines the valid values of the SystemParam field (Value column) and corresponding values of the Body field (Meaning column).ValueMeaningSPI_SETDRAGFULLWINDOWS0x0025Size of Body field: 1 byte.0 (FALSE): Full Window Drag is disabled. Nonzero (TRUE): Full Window Drag is enabled.SPI_SETKEYBOARDCUES0x100BSize of Body field: 1 byte.0 (FALSE): Menu Access Keys are underlined only when the menu is activated by the keyboard. Nonzero (TRUE): Menu Access Keys are always underlined.SPI_SETKEYBOARDPREF0x0045Size of Body field: 1 byte.0 (FALSE): The user does not prefer the keyboard over mouse. Nonzero (TRUE): The user prefers the keyboard over mouse. This causes applications to display keyboard interfaces that would otherwise be hidden. SPI_SETMOUSEBUTTONSWAP0x0021Size of Body field: 1 byte.0 (FALSE): Restores the meaning of the left and right mouse buttons to their original meanings. Nonzero (TRUE): Swaps the meaning of the left and right mouse buttons. SPI_SETWORKAREA0x002FSize of Body field: 8 bytes.The body is a TS_RECTANGLE_16 structure that defines the work area in virtual screen coordinates. In a system with multiple display monitors, the work area is that of the monitor that contains the specified rectangle. For more information about virtual screen coordinates, see [MSDN-VIRTUALSCR].RAIL_SPI_DISPLAYCHANGE0xF001Size of Body field: 8 bytes.The body is a TS_RECTANGLE_16 structure that indicates the new display resolution in virtual screen coordinates. For more information about virtual screen coordinates, see [MSDN-VIRTUALSCR].RAIL_SPI_TASKBARPOS0xF000Size of Body field: 8 bytes.The body is a TS_RECTANGLE_16 structure that indicates the size of the client taskbar.SPI_SETHIGHCONTRAST0x0043Size of Body field: Variable number of bytes.The body is a TS_HIGHCONTRAST structure.SPI_SETCARETWIDTH0x00002007Size of Body field: 4 bytes.The body is an unsigned 32-bit integer that indicates the width of the caret. The minimum allowed value is 0x00000001.SPI_SETSTICKYKEYS0x0000003BSize of Body field: 4 bytes.The body is a TS_STICKYKEYS structure.SPI_SETTOGGLEKEYS0x00000035Size of Body field: 4 bytes.The body is a TS_TOGGLEKEYS structure.SPI_SETFILTERKEYS0x00000033Size of Body field: 20 bytes.The body is a TS_FILTERKEYS structure.High Contrast System Information Structure (TS_HIGHCONTRAST) XE "TS_HIGHCONTRAST packet"The TS_HIGHCONTRAST packet defines parameters for the high-contrast accessibility feature.01234567891012345678920123456789301FlagsColorSchemeLengthColorScheme (variable)...Flags (4 bytes): An unsigned 32-bit integer that is read by the server and used to set the High Contrast parameters. HYPERLINK \l "Appendix_A_14" \o "Product behavior note 14" \h <14> FlagMeaningHCF_HIGHCONTRASTON0x00000001The High Contrast feature is enabled.HCF_AVAILABLE0x00000002The High Contrast feature is available.HCF_HOTKEYACTIVE0x00000004The user can turn the High Contrast feature on or off by using the hotkey (left SHIFT + left ALT + PRINT SCREEN).HCF_CONFIRMHOTKEY0x00000008The user will be prompted with a confirmation dialog before the High Contrast feature is enabled using the hotkey.HCF_HOTKEYSOUND0x00000010A sound is played whenever the High Contrast feature is turned on or off using the hotkey.ColorSchemeLength (4 bytes): An unsigned 32-bit integer. The length, in bytes, of the ColorScheme field.ColorScheme (variable): UNICODE_STRING. Variable length. The Windows-specific name of the High Contrast Color Scheme, specified as a null-terminated UNICODE_STRING. HYPERLINK \l "Appendix_A_15" \o "Product behavior note 15" \h <15>Filter Keys System Information Structure (TS_FILTERKEYS)The TS_FILTERKEYS packet defines parameters for the Filter Keys accessibility feature.01234567891012345678920123456789301FlagsWaitTimeDelayTimeRepeatTimeBounceTimeFlags (4 bytes): An unsigned 32-bit integer that is read by the server and used to set the Filter Keys parameters.FlagMeaningFKF_FILTERKEYSON0x00000001The Filter Keys feature is enabled.FKF_AVAILABLE0x00000002The Filter Keys feature is available.FKF_HOTKEYACTIVE0x00000004The user can turn the Filter Keys feature on or off by using the default hotkey (holding right SHIFT for 8 seconds).FKF_CONFIRMHOTKEY0x00000008The user will be prompted with a confirmation dialog before the Filter Keys feature is enabled using the hotkey.FKF_HOTKEYSOUND0x00000010A sound is played whenever the Filter Keys feature is turned on or off using the hotkey.FKF_INDICATOR0x00000020A visual indicator is displayed when the Filter Keys feature is enabled.FKF_CLICKON0x00000040A click sound is played whenever a key is pressed or accepted.WaitTime (4 bytes): An unsigned 32-bit integer. The length of time, in milliseconds, that a user has to hold down a key before it is accepted by the computer.DelayTime (4 bytes): An unsigned 32-bit integer. The length of time, in milliseconds, that the user has to hold down a key before it begins to repeat.RepeatTime (4 bytes): An unsigned 32-bit integer. The length of time, in milliseconds, between each repetition of the keystroke.BounceTime (4 bytes): An unsigned 32-bit integer. The length of time, in milliseconds, that has to elapse after releasing a key before a subsequent press of the same key is accepted.Toggle Keys System Information Structure (TS_TOGGLEKEYS)The TS_TOGGLEKEYS packet defines parameters for the Toggle Keys accessibility feature.01234567891012345678920123456789301FlagsFlags (4 bytes): An unsigned 32-bit integer that is read by the server and used to set the Toggle Keys parameters.FlagMeaningTKF_TOGGLEKEYSON0x00000001The Toggle Keys feature is enabled.TKF_AVAILABLE0x00000002The Toggle Keys feature is available.TKF_HOTKEYACTIVE0x00000004The user can turn the Toggle Keys feature on or off by using the hotkey (holding NUM LOCK for 8 seconds). TKF_CONFIRMHOTKEY0x00000008The user will be prompted with a confirmation dialog before the Toggle Keys feature is enabled using the hotkey.TKF_HOTKEYSOUND0x00000010A sound is played whenever the Toggle Keys feature is turned on or off using the hotkey.Sticky Keys System Information Structure (TS_STICKYKEYS)The TS_STICKYKEYS packet defines parameters for the Sticky Keys accessibility feature.01234567891012345678920123456789301FlagsFlags (4 bytes): An unsigned 32-bit integer that is read by the server and used to set the Sticky Keys parameters.FlagMeaningSKF_STICKYKEYSON0x00000001The Sticky Keys feature is enabled.SKF_AVAILABLE0x00000002The Sticky Keys feature is available.SKF_HOTKEYACTIVE0x00000004The user can turn the Sticky Keys feature on or off by using the hotkey (pressing the SHIFT key five times).SKF_CONFIRMHOTKEY0x00000008The user will be prompted with a confirmation dialog before the Sticky Keys feature is enabled using the hotkey.SKF_HOTKEYSOUND0x00000010A sound is played whenever the Sticky Keys feature is turned on or off using the hotkey.SKF_INDICATOR0x00000020A visual indicator is displayed when the Sticky Keys feature is enabled.SKF_AUDIBLEFEEDBACK0x00000040A sound is played whenever a modifier key is latched, locked, or released.SKF_TRISTATE0x00000080Pressing a modifier key twice in a row will lock the key down until the user presses it a third time.SKF_TWOKEYSOFF0x00000100Releasing a modifier key that has been pressed in combination with another key will turn off the Sticky Keys feature.SKF_LSHIFTLOCKED0x00010000The left SHIFT key is locked.SKF_RSHIFTLOCKED0x00020000The right SHIFT key is locked.SKF_LCTLLOCKED0x00040000The left CTRL key is locked.SKF_RCTLLOCKED0x00080000The right CTRL key is locked.SKF_LALTLOCKED0x00100000The left ALT key is locked.SKF_RALTLOCKED0x00200000The right ALT key is locked.SKF_LWINLOCKED0x00400000The left WINDOWS key is locked.SKF_RWINLOCKED0x00800000The right WINDOWS key is locked.SKF_LSHIFTLATCHED0x01000000The left SHIFT key is latched.SKF_RSHIFTLATCHED0x02000000The right SHIFT key is latched.SKF_LCTLLATCHED0x04000000The left CTRL key is latched.SKF_RCTLLATCHED0x08000000The right CTRL key is latched.SKF_LALTLATCHED0x10000000The left ALT key is latched.SKF_RALTLATCHED0x20000000The right ALT key is latched.SKF_LWINLATCHED0x40000000The left WINDOWS key is latched.SKF_RWINLATCHED0x80000000The right WINDOWS key is latched.Server System Parameters Update Messages XE "Server system parameters update messages"Server System Parameters Update PDU (TS_RAIL_ORDER_SYSPARAM) XE "Server_System_Parameters_Update_PDU packet" XE "Server system parameters update messages" XE "Server system parameters update messages" XE "Server system parameters update messages"The Server System Parameters Update PDU is sent from the server to client to synchronize system parameters on the client with those on the server.01234567891012345678920123456789301HeaderSystemParameterBodyHeader (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of header MUST be set to 0x03 (TS_RAIL_ORDER_SYSPARAM).SystemParameter (4 bytes): An unsigned 32-bit integer. The type of system parameter being transmitted. This field MUST be set to one of the following values.ValueMeaningSPI_SETSCREENSAVEACTIVE0x00000011The system parameter indicating whether the screen saver is enabled.SPI_SETSCREENSAVESECURE0x00000077The system parameter indicating whether the desktop is to be locked after switching out of screen saver mode (that is, after the screen saver starts due to inactivity, then stops due to activity). HYPERLINK \l "Appendix_A_16" \o "Product behavior note 16" \h <16>Body (1 byte): The content of this field depends on the SystemParameter field. The following table outlines the valid values of the SystemParameter field (Value column) and corresponding values of the Body field (Meaning column).ValueMeaningSPI_SETSCREENSAVEACTIVE0x00000011Size of Body field: 1 byte.0 (FALSE): Screen saver is not enabled. Nonzero (TRUE): Screen Saver is enabled.SPI_SETSCREENSAVESECURE0x00000077Size of Body field: 1 byte.0 (FALSE): Do not lock the desktop when switching out of screen saver mode. Nonzero (TRUE): Lock the desktop when switching out of screen saver mode.Local Client Event Messages XE "Local client event messages"These messages are generated by the client whenever a window or notification icon event occurs on the client side that is not communicated via the RDP channel.Client Activate PDU (TS_RAIL_ORDER_ACTIVATE) XE "TS_RAIL_ORDER_ACTIVATE packet"The Client Activate PDU is sent from client to server when a local RAIL window on the client is activated or deactivated.01234567891012345678920123456789301HdrWindowIdEnabledHdr (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_ACTIVATE (0x0002).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the associated window on the server that is to be activated or deactivated.Enabled (1 byte): An unsigned 8-bit integer. Indicates whether the window is to be activated (value = nonzero) or deactivated (value = 0).Client System Menu PDU (TS_RAIL_ORDER_SYSMENU) XE "TS_RAIL_ORDER_SYSMENU packet"The Client System Menu PDU packet is sent from the client to the server when a local RAIL window on the client receives a command to display its System menu. This command is forwarded to the server via the System menu PDU.01234567891012345678920123456789301HdrWindowIdLeftTopHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_SYSMENU (0x000C).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server that SHOULD display its System menu.Left (2 bytes): A 16-bit signed integer. The x-coordinate of the top-left corner at which the System menu SHOULD be displayed. Specified in screen (2 bytes): A 16-bit signed integer. The y-coordinate of the top-left corner at which the System menu SHOULD be displayed. Specified in screen coordinates.Client System Command PDU (TS_RAIL_ORDER_SYSCOMMAND) XE "TS_RAIL_ORDER_SYSCOMMAND packet"The Client System Command PDU packet is sent from the client to the server when a local RAIL window on the client receives a command to perform an action on the window, such as minimize or maximize. This command is forwarded to the server via the System Command PDU.01234567891012345678920123456789301HdrWindowIdCommandHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_SYSCOMMAND (0x0004).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server to activate or mand (2 bytes): An unsigned 16-bit integer. Specifies the type of command. The field MUST be one of the following values.ValueMeaningSC_SIZE0xF000Resize the window.SC_MOVE0xF010Move the window.SC_MINIMIZE0xF020Minimize the window.SC_MAXIMIZE0xF030Maximize the window.SC_CLOSE0xF060Close the window.SC_KEYMENU0xF100The ALT + SPACE key combination was pressed; display the window's system menu.SC_RESTORE 0xF120Restore the window to its original shape and size.SC_DEFAULT0xF160Perform the default action of the window's system menu.Client Notify Event PDU (TS_RAIL_ORDER_NOTIFY_EVENT) XE "TS_RAIL_ORDER_NOTIFY_EVENT packet"The Client Notify Event PDU packet is sent from a client to a server when a local RAIL Notification Icon on the client receives a keyboard or mouse message from the user. This notification is forwarded to the server via the Notify Event PDU.01234567891012345678920123456789301HdrWindowIdNotifyIconIdMessageHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_NOTIFY_EVENT (0x0006).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the associated window on the server that owns the notification icon being specified in the PDU. NotifyIconId (4 bytes): An unsigned 32-bit integer. The ID of the associated notification icon on the server that SHOULD receive the keyboard or mouse interaction.Message (4 bytes): An unsigned 32-bit integer. The message being sent to the notification icon on the server.ValueMeaningWM_LBUTTONDOWN0x00000201The user pressed the left mouse button in the client area of the notification icon.WM_LBUTTONUP0x00000202The user released the left mouse button while the cursor was in the client area of the notification icon.WM_RBUTTONDOWN0x00000204The user pressed the right mouse button in the client area of the notification icon.WM_RBUTTONUP0x00000205The user released the right mouse button while the cursor was in the client area of the notification icon.WM_CONTEXTMENU0x0000007BThe user selected a notification icon’s shortcut menu with the keyboard. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).WM_LBUTTONDBLCLK0x00000203The user double-clicked the left mouse button in the client area of the notification icon.WM_RBUTTONDBLCLK0x00000206The user double-clicked the right mouse button in the client area of the notification icon.NIN_SELECT0x00000400The user selected a notification icon with the mouse and activated it with the ENTER key. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).NIN_KEYSELECT0x00000401The user selected a notification icon with the keyboard and activated it with the SPACEBAR or ENTER key. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).NIN_BALLOONSHOW0x00000402The user passed the mouse pointer over an icon with which a balloon tooltip is associated (see InfoTip field in section 2.2.1.3.2.2.1), and the balloon tooltip was shown. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).NIN_BALLOONHIDE0x00000403The icon's balloon tooltip disappeared because, for example, the icon was deleted. This message is not sent if the balloon is dismissed because of a timeout or mouse click by the user. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).NIN_BALLOONTIMEOUT0x00000404The icon's balloon tooltip was dismissed because of a timeout. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1).NIN_BALLOONUSERCLICK0x00000405User dismissed the balloon by clicking the mouse. This message is sent only for notification icons that follow Windows 2000 behavior (see Version field in section 2.2.1.3.2.2.1). Client Get Application ID PDU (TS_RAIL_ORDER_GET_APPID_REQ) XE "TS_RAIL_ORDER_GET_APPID_REQ packet"The Client Get Application ID PDU is sent from a client to a server. This PDU requests information from the server about the Application ID that the window SHOULD HYPERLINK \l "Appendix_A_17" \o "Product behavior note 17" \h <17> have on the client.The server MAY ignore this PDU.01234567891012345678920123456789301HdrWindowIdHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_GET_APPID_REQ (0x000E).WindowId (4 bytes): An unsigned 32-bit integer specifying the ID of the associated window on the server that requires needs an Application ID.Window Move Messages XE "Window move messages"Server Min Max Info PDU (TS_RAIL_ORDER_MINMAXINFO) XE "TS_RAIL_ORDER_MINMAXINFO packet"The Server Min Max Info PDU is sent from a server to a client when a window move or resize on the server is being initiated. This PDU contains information about the minimum and maximum extents to which the window can be moved or sized. 01234567891012345678920123456789301HdrWindowIdMaxWidthMaxHeightMaxPosXMaxPosYMinTrackWidthMinTrackHeightMaxTrackWidthMaxTrackHeightHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_MINMAXINFO (0x000A). WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server that is being moved or resized.MaxWidth (2 bytes): A signed 16-bit integer. The width of the maximized window.MaxHeight (2 bytes): A signed 16-bit integer. The height of the maximized window.MaxPosX (2 bytes): A signed 16-bit integer. The x-coordinate of the top-left corner of the maximized window.MaxPosY (2 bytes): A signed 16-bit integer. The y-coordinate of the top-left corner of the maximized window.MinTrackWidth (2 bytes): A signed 16-bit integer. The minimum width to which the window can be resized.MinTrackHeight (2 bytes): A signed 16-bit integer. The minimum height to which the window can be resized.MaxTrackWidth (2 bytes): A signed 16-bit integer. The maximum width to which the window can be resized.MaxTrackHeight (2 bytes): A signed 16-bit integer. The maximum height to which the window can be resized.Server Move/Size Start PDU (TS_RAIL_ORDER_LOCALMOVESIZE) XE "Server_Move_Size_Start_PDU packet"The Server Move/Size Start PDU packet is sent by the server when a window on the server is beginning a move or resize. The client uses this information to initiate a local move or resize of the corresponding local window.01234567891012345678920123456789301HdrWindowIdIsMoveSizeStartMoveSizeTypePosXPosYHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_LOCALMOVESIZE (0x0009).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server that is being moved or resized.IsMoveSizeStart (2 bytes): An unsigned 16-bit integer. Indicates that the move/size is beginning; MUST be set to a nonzero value.MoveSizeType (2 bytes): An unsigned 16-bit integer. Indicates the type of the move/size. This value determines the meaning of the fields PosX and PosY.ValueMeaningRAIL_WMSZ_LEFT0x0001The left edge of the window is being sized.RAIL_WMSZ_RIGHT 0x0002The right edge of the window is being sized.RAIL_WMSZ_TOP0x0003The top edge of the window is being sized.RAIL_WMSZ_TOPLEFT0x0004The top-left corner of the window is being sized.RAIL_WMSZ_TOPRIGHT0x0005The top-right corner of the window is being sized.RAIL_WMSZ_BOTTOM0x0006The bottom edge of the window is being sized.RAIL_WMSZ_BOTTOMLEFT0x0007The bottom-left corner of the window is being sized.RAIL_WMSZ_BOTTOMRIGHT0x0008The bottom-right corner of the window is being sized.RAIL_WMSZ_MOVE0x0009The window is being moved by using the mouse.RAIL_WMSZ_KEYMOVE0x000AThe window is being moved by using the keyboard.RAIL_WMSZ_KEYSIZE0x000BThe window is being resized by using the keyboard.PosX (2 bytes): A signed 16-bit integer. The meaning of this field depends upon the value of the MoveSizeType field. ValueMeaningRAIL_WMSZ_LEFT0x0001The x-coordinate of the last mouse button-down.RAIL_WMSZ_RIGHT0x0002The x-coordinate of the last mouse button-down.RAIL_WMSZ_TOP0x0003The x-coordinate of the last mouse button-down.RAIL_WMSZ_TOPLEFT0x0004The x-coordinate of the last mouse button-down.RAIL_WMSZ_TOPRIGHT0x0005The x-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOM0x0006The x-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOMLEFT0x0007The x-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOMRIGHT0x0008The x-coordinate of the last mouse button-down.RAIL_WMSZ_MOVE0x0009The horizontal offset between the window's top-left edge and the current mouse position.RAIL_WMSZ_KEYMOVE0x000AThe x-coordinate of the last mouse button-down.RAIL_WMSZ_KEYSIZE0x000BThe x-coordinate of the last mouse button-down.PosY (2 bytes): A signed 16-bit integer. The meaning of this field depends on the value of the MoveSizeType field. ValueMeaningRAIL_WMSZ_LEFT0x0001The y-coordinate of the last mouse button-down.RAIL_WMSZ_RIGHT0x0002The y-coordinate of the last mouse button-down.RAIL_WMSZ_TOP0x0003The y-coordinate of the last mouse button-down.RAIL_WMSZ_TOPLEFT0x0004The y-coordinate of the last mouse button-down.RAIL_WMSZ_TOPRIGHT0x0005The y-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOM0x0006The y-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOMLEFT0x0007The y-coordinate of the last mouse button-down.RAIL_WMSZ_BOTTOMRIGHT0x0008The y-coordinate of the last mouse button-down.RAIL_WMSZ_MOVE0x0009The vertical offset between the window's top-left edge and the current mouse position.RAIL_WMSZ_KEYMOVE0x000AThe y-coordinate of the last mouse button-down.RAIL_WMSZ_KEYSIZE0x000BThe y-coordinate of the last mouse button-down.Server Move/Size End PDU (TS_RAIL_ORDER_LOCALMOVESIZE) XE "Server_Move_Size_End_PDU packet"The Server Move/Size End PDU is sent by the server when a window on the server is completing a move or resize. The client uses this information to end a local move/resize of the corresponding local window.01234567891012345678920123456789301HdrWindowIdIsMoveSizeStartMoveSizeTypeTopLeftXTopLeftYHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_LOCALMOVESIZE (0x0009). WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server that is being moved or resized.IsMoveSizeStart (2 bytes): An unsigned 16-bit integer. Indicates the move or resize is ending. This field MUST be set to 0.MoveSizeType (2 bytes): An unsigned 16-bit integer. Indicates the type of the move/size.ValueMeaningRAIL_WMSZ_LEFT0x0001The left edge of the window is being sized.RAIL_WMSZ_RIGHT0x0002The right edge of the window is being sized.RAIL_WMSZ_TOP0x0003The top edge of the window is being sized.RAIL_WMSZ_TOPLEFT0x0004The top-left corner of the window is being sized.RAIL_WMSZ_TOPRIGHT0x0005The top-right corner of the window is being sized.RAIL_WMSZ_BOTTOM0x0006The bottom edge of the window is being sized.RAIL_WMSZ_BOTTOMLEFT0x0007The bottom-left corner of the window is being sized.RAIL_WMSZ_BOTTOMRIGHT0x0008The bottom-right corner of the window is being sized.RAIL_WMSZ_MOVE0x0009The window is being moved by using the mouse.RAIL_WMSZ_KEYMOVE0x000AThe window is being moved by using the keyboard.RAIL_WMSZ_KEYSIZE0x000BThe window is being resized by using the LeftX (2 bytes): A signed 16-bit integer. The x-coordinate of the moved or resized window's top-left LeftY (2 bytes): A signed 16-bit integer. The y-coordinate of the moved or resized window's top-left corner.Client Window Move PDU (TS_RAIL_ORDER_WINDOWMOVE) XE "TS_RAIL_ORDER_WINDOWMOVE packet"The Client Window Move PDU packet is sent from the client to the server when a local window is ending a move or resize. The client communicates the locally moved or resized window's position to the server by using this packet. The server uses this information to reposition its window.Window positions sent using this packet SHOULD include hit-testable margins (see section 3.2.5.1.6).01234567891012345678920123456789301HdrWindowIdLeftTopRightBottomHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_WINDOWMOVE (0x0008).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server corresponding to the local window that was moved or resized.Left (2 bytes): A signed 16-bit integer. The x-coordinate of the top-left corner of the window's new (2 bytes): A signed 16-bit integer. The y-coordinate of the top-left corner of the window's new position.Right (2 bytes): A signed 16-bit integer. The x-coordinate of the bottom-right corner of the window's new position.Bottom (2 bytes): A signed 16-bit integer. The y-coordinate of the bottom-right corner of the window's new position.Client Window Snap PDU (TS_RAIL_ORDER_SNAP_ARRANGE)The Client Window Snap PDU packet is sent from the client to the server when a local window is repositioned by the local window manager due to the use of a window arrangement feature, such as Snap or Snap Assist. The client communicates the new position of the local window to the server by sending this packet. The server uses this information to reposition the corresponding window using an equivalent window arrangement feature. This packet is only sent if the server has advertised support for the Window Snap feature in the HandshakeEx PDU (section 2.2.2.2.3); otherwise, a Client Window Move PDU (section 2.2.2.7.4) is sent instead.Window positions sent using this packet SHOULD include hit-testable margins (see section 3.2.5.1.6).01234567891012345678920123456789301HdrWindowIdLeftTopRightBottomHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_SNAP_ARRANGE (0x0017).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window on the server corresponding to the local window that was snapped.Left (2 bytes): A signed 16-bit integer. The x-coordinate of the top-left corner of the window's new (2 bytes): A signed 16-bit integer. The y-coordinate of the top-left corner of the window's new position.Right (2 bytes): A signed 16-bit integer. The x-coordinate of the bottom-right corner of the window's new position.Bottom (2 bytes): A signed 16-bit integer. The y-coordinate of the bottom-right corner of the window's new position.Server Application ID ResponseServer Get Application ID Response PDU (TS_RAIL_ORDER_GET_APPID_RESP) XE "TS_RAIL_ORDER_GET_APPID_RESP packet"The Server Get Application ID Response PDU is sent from a server to a client as a response to a Client Get Application ID PDU (section 2.2.2.6.5).This PDU specifies the Application ID that the specified window SHOULD HYPERLINK \l "Appendix_A_18" \o "Product behavior note 18" \h <18> have on the client. The client MAY ignore this PDU.01234567891012345678920123456789301HdrWindowIdApplicationId (520 bytes)......Hdr (4 bytes): A TS_RAIL_PDU_HEADER (section 2.2.2.1) header. The orderType field of the header MUST be set to TS_RAIL_ORDER_GET_APPID_RESP (0x000F).WindowId (4 bytes): An unsigned 32-bit integer specifying the ID of the associated window on the server whose Application ID is being sent to the client.ApplicationId (520 bytes): A null-terminated string of Unicode characters specifying the Application ID that the Client SHOULD associate with its window, if it supports using the Application ID for identifying and grouping windows.Server Get Application ID Extended Response PDU (TS_RAIL_ORDER_GET_APPID_RESP_EX)The Server Get Application ID Extended Response PDU is sent from a server to a client as a response to a Client Get Application ID PDU (section 2.2.2.6.5).This PDU specifies the Application ID that the specified window SHOULD HYPERLINK \l "Appendix_A_19" \o "Product behavior note 19" \h <19> have on the client. The client MAY ignore this PDU.01234567891012345678920123456789301HdrWindowIdApplicationId (520 bytes).........ProcessIdProcessImageName (520 bytes).........Hdr (4 bytes): A TS_RAIL_PDU_HEADER (section 2.2.2.1) header. The orderType field of the header MUST be set to TS_RAIL_ORDER_GET_APPID_RESP_EX (0x0018).WindowId (4 bytes): An unsigned 32-bit integer specifying the ID of the associated window on the server whose Application ID is being sent to the client.ApplicationId (520 bytes): A null-terminated string of Unicode characters specifying the Application ID that the Client SHOULD associate with its window, if it supports using the Application ID for identifying and grouping windows.ProcessId (4 bytes): An unsigned 32-bit integer specifying the ID of the process associated with the window on the server whose Application ID is being sent to the client.ProcessImageName (520 bytes): A null-terminated string of Unicode characters specifying the image name of the process associated with the window on the server whose Application ID is being sent to the client.Language Bar MessagesLanguage Bar Information PDU (TS_RAIL_ORDER_LANGBARINFO) XE "TS_RAIL_ORDER_LANGBARINFO packet"The Language Bar Information PDU is used to set the language bar status. It is sent from a client to a server or a server to a client, but only when both support the Language Bar docking capability (TS_RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTED). This PDU contains information about the language bar status.01234567891012345678920123456789301HdrLanguageBarStatusHdr (4 bytes): A TS_RAIL_PDU_HEADER (section 2.2.2.1) header. The orderType field of the header MUST be set to TS_RAIL_ORDER_LANGBARINFO (0x000D).LanguageBarStatus (4 bytes): An unsigned 32-bit integer. The possible values are indicated in the table below. The server sends the LanguageBarStatus it retrieves from the local language bar:ValueMeaningTF_SFT_SHOWNORMAL0x00000001Display the language bar as a floating window. This constant cannot be combined with the TF_SFT_DOCK, TF_SFT_MINIMIZED, TF_SFT_HIDDEN, or TF_SFT_DESKBAND constants.TF_SFT_DOCK0x00000002Dock the language bar in its own task pane. This constant cannot be combined with the TF_SFT_SHOWNORMAL, TF_SFT_MINIMIZED, TF_SFT_HIDDEN, or TF_SFT_DESKBAND constants. HYPERLINK \l "Appendix_A_20" \o "Product behavior note 20" \h <20>TF_SFT_MINIMIZED0x00000004Display the language bar as a single icon in the system tray. This constant cannot be combined with the TF_SFT_SHOWNORMAL, TF_SFT_DOCK, TF_SFT_HIDDEN, or TF_SFT_DESKBAND constants.TF_SFT_HIDDEN0x00000008Hide the language bar. This constant cannot be combined with the TF_SFT_SHOWNORMAL, TF_SFT_DOCK, TF_SFT_MINIMIZED, or TF_SFT_DESKBAND constants.TF_SFT_NOTRANSPARENCY0x00000010Make the language bar opaque.TF_SFT_LOWTRANSPARENCY0x00000020Make the language bar partially transparent. HYPERLINK \l "Appendix_A_21" \o "Product behavior note 21" \h <21>TF_SFT_HIGHTRANSPARENCY0x00000040Make the language bar highly transparent. HYPERLINK \l "Appendix_A_22" \o "Product behavior note 22" \h <22>TF_SFT_LABELS0x00000080Display text labels next to language bar icons.TF_SFT_NOLABELS0x00000100Hide language bar icon text labels.TF_SFT_EXTRAICONSONMINIMIZED0x00000200Display text service icons on the taskbar when the language bar is minimized.TF_SFT_NOEXTRAICONSONMINIMIZED0x00000400Hide text service icons on the taskbar when the language bar is minimized.TF_SFT_DESKBAND0x00000800Dock the language bar in the system task bar. This constant cannot be combined with the TF_SFT_SHOWNORMAL, TF_SFT_DOCK, TF_SFT_MINIMIZED, or TF_SFT_HIDDEN constants. HYPERLINK \l "Appendix_A_23" \o "Product behavior note 23" \h <23>Language Sync MessagesLanguage Profile Information PDU (TS_RAIL_ORDER_LANGUAGEIMEINFO) XE "TS_RAIL_ORDER_LANGUAGEIMEINFO packet"The Language Profile Information PDU is used to send the current active language profile of the client to the server. It is only sent when both client and server support this capability (TS_RAIL_LEVEL_LANGUAGE_IME_SYNC_SUPPORTED). This PDU contains information about the current active language profile.01234567891012345678920123456789301HdrProfileTypeLanguageIDLanguageProfileCLSID (16 bytes)............ProfileGUID (16 bytes)............KeyboardLayout...Hdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_LANGUAGEIMEINFO (0x0011).ProfileType (4 bytes): An unsigned 4-byte integer that identifies the profile type of the language. The value SHOULD be either TF_PROFILETYPE_INPUTPROCESSOR (0x0001) or TF_PROFILETYPE_KEYBOARDLAYOUT (0x0002).ValueMeaningTF_PROFILETYPE_INPUTPROCESSOR0x00000001Indicates that the profile type is an input processor.TF_PROFILETYPE_KEYBOARDLAYOUT0x00000002Indicates that the profile type is a keyboard layout.LanguageID (2 bytes): An unsigned 2-byte integer. This is the language identifier that identifies both the language and the country/region. For a list of language identifiers, see [MSDN-MUI].LanguageProfileCLSID (16 bytes): A globally unique identifier (section 2.2.2.10.1.1) that uniquely identifies the text service of the client. This field MUST be set to GUID_NULL if the ProfileType field is set to TF_PROFILETYPE_KEYBOARDLAYOUT (0x0002).ValueMeaningGUID_NULL{0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}Indicates that there is no input processor.GUID_MSIME_JPN{0x03B5835F, 0xF03C, 0x411B, 0x9C, 0xE2, 0xAA, 0x23, 0xE1, 0x17, 0x1E, 0x36}Indicates that the input processor is Japanese.GUID_MSIME_KOR{0xA028AE76, 0x01B1, 0x46C2, 0x99, 0xC4, 0xAC, 0xD9, 0x85, 0x8A, 0xE0, 0x2}Indicates that the input processor is Korean.GUID_CHSIME{0x81D4E9C9, 0x1D3B, 0x41BC, 0x9E, 0x6C, 0x4B, 0x40, 0xBF, 0x79, 0xE3, 0x5E}Indicates that the input processor is Chinese Simplified.GUID_CHTIME{0x531FDEBF, 0x9B4C, 0x4A43, 0xA2, 0xAA, 0x96, 0x0E, 0x8F, 0xCD, 0xC7, 0x32}Indicates that the input processor is Chinese (Taiwanese).ProfileGUID (16 bytes): A globally unique identifier (section 2.2.2.10.1.1) that uniquely identifies the language profile of the client. This field MUST be set to GUID_NULL if the ProfileType field is set to TF_PROFILETYPE_KEYBOARDLAYOUT (0x0002).ValueMeaningGUID_NULL{0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}Indicates that there is no profile.GUID_PROFILE_NEWPHONETIC{0xB2F9C502, 0x1742, 0x11D4, 0x97, 0x90, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E}Indicates that the profile is new phonetic.GUID_PROFILE_CHANGJIE{0x4BDF9F03, 0xC7D3, 0x11D4, 0xB2, 0xAB, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E}Indicates that the profile is ChangJie.GUID_PROFILE_QUICK{0x6024B45F, 0x5C54, 0x11D4, 0xB9, 0x21, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E}Indicates that the profile is Quick type.GUID_PROFILE_CANTONESE{0x0AEC109C, 0x7E96, 0x11D4, 0xB2, 0xEF, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E}Indicates that the profile is Cantonese.GUID_PROFILE_PINYIN{0xF3BA9077, 0x6C7E, 0x11D4, 0x97, 0xFA, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E}Indicates that the profile is PinYin.GUID_PROFILE_SIMPLEFAST{0xFA550B04, 0x5AD7, 0x411F, 0xA5, 0xAC, 0xCA, 0x03, 0x8E, 0xC5, 0x15, 0xD7}Indicates that the profile is SimpleFast.GUID_GUID_PROFILE_MSIME_JPN{0xA76C93D9, 0x5523, 0x4E90, 0xAA, 0xFA, 0x4D, 0xB1, 0x12, 0xF9, 0xAC, 0x76}Indicates that the profile is Microsoft Japanese IME.GUID_PROFILE_MSIME_KOR{0xB5FE1F02, 0xD5F2, 0x4445, 0x9C, 0x03, 0xC5, 0x68, 0xF2, 0x3C, 0x99, 0xA1}Indicates that the profile is Microsoft Korean IME.KeyboardLayout (4 bytes): An unsigned 4-byte integer. The active input locale identifier, also known as the "HKL" (for example, 0x00010409 identifies a "United States-Dvorak" keyboard layout, while 0x00020418 is a "Romanian (Programmers)" keyboard layout). For a list of input locale identifiers, see [MSFT-DIL].Globally Unique Identifier (GUID) XE "Globally Unique Identifier (GUID) packet"The GUID structure contains 128 bits that represent a globally unique identifier that can be used to provide a distinctive reference number, as defined in [MS-DTYP] section 2.3.4.01234567891012345678920123456789301codecGUID1codecGUID2codecGUID3codecGUID4codecGUID5codecGUID6codecGUID7codecGUID8codecGUID9codecGUID10codecGUID11codecGUID1 (4 bytes): A 32-bit, unsigned integer. The first GUID component.codecGUID2 (2 bytes): A 16-bit, unsigned integer. The second GUID component.codecGUID3 (2 bytes): A 16-bit, unsigned integer. The third GUID component.codecGUID4 (1 byte): An 8-bit, unsigned integer. The fourth GUID component.codecGUID5 (1 byte): An 8-bit, unsigned integer. The fifth GUID component.codecGUID6 (1 byte): An 8-bit, unsigned integer. The sixth GUID component.codecGUID7 (1 byte): An 8-bit, unsigned integer. The seventh GUID component.codecGUID8 (1 byte): An 8-bit, unsigned integer. The eighth GUID component.codecGUID9 (1 byte): An 8-bit, unsigned integer. The ninth GUID component.codecGUID10 (1 byte): An 8-bit, unsigned integer. The tenth GUID component.codecGUID11 (1 byte): An 8-bit, unsigned integer. The eleventh GUID partment Status Information PDU (TS_RAIL_ORDER_COMPARTMENTINFO_BODY) XE "TS_RAIL_ORDER_COMPARTMENTINFO_BODY packet"The Compartment Status Information PDU is used to send the current input method editor (IME) status information. It is sent from a client to the server, or from a server to the client, but only when client and server both support this capability (TS_RAIL_LEVEL_LANGUAGE_IME_SYNC_SUPPORTED). This PDU is used to send the current compartment values of the client or server and is sent only if the current language profile type is TF_PROFILETYPE_INPUTPROCESSOR (0x0001).01234567891012345678920123456789301HdrImeStateImeConvModeImeSentenceModeKANAModeHdr (4 bytes): A TS_RAIL_PDU_HEADER header. The orderType field of the header MUST be set to TS_RAIL_ORDER_COMPARTMENTINFO (0x0012).ImeState (4 bytes): A 32-bit, unsigned integer. Indicates the open or closed state of the IME.ValueMeaningIME_STATE_CLOSED0x00000000The IME state is closed.IME_STATE_OPEN0x00000001The IME state is open.ImeConvMode (4 bytes): A 32-bit, unsigned integer. Indicates the IME conversion mode.ValueMeaningIME_CMODE_NATIVE0x00000001The input mode is native. If not set, the input mode is alphanumeric.IME_CMODE_KATAKANA0x00000002The input mode is Katakana. If not set, the input mode is Hiragana.IME_CMODE_FULLSHAPE0x00000008The input mode is full-width. If not set, the input mode is half-width.IME_CMODE_ROMAN0x00000010The input mode is Roman.IME_CMODE_CHARCODE0x00000020Character-code input is in effect.IME_CMODE_HANJACONVERT0x00000040Hanja conversion mode is in effect.IME_CMODE_SOFTKBD0x00000080A soft (on-screen) keyboard is being used.IME_CMODE_NOCONVERSION0x00000100IME conversion is inactive (that is, the IME is closed).IME_CMODE_EUDC0x00000200End-User Defined Character (EUDC) conversion mode is in effect.IME_CMODE_SYMBOL0x00000400Symbol conversion mode is in effect.IME_CMODE_FIXED0x00000800Fixed conversion mode is in effect.ImeSentenceMode (4 bytes): An unsigned 4-byte integer that identifies the sentence mode of the IME.FlagMeaningIME_SMODE_NONE0x00000000Indicates that the IME uses no information for sentence.IME_SMODE_PLURALCLAUSE0x00000001Indicates that the IME uses plural clause information to carry out conversion processing.IME_SMODE_SINGLECONVERT0x00000002Indicates that the IME carries out conversion processing in single-character mode.IME_SMODE_AUTOMATIC0x00000004Indicates that the IME carries conversion processing in automatic mode.IME_SMODE_PHRASEPREDICT0x00000008Indicates that the IME uses phrase information to predict the next character.IME_SMODE_CONVERSATION0x00000010Indicates that the IME uses conversation mode. This is useful for chat applications.KANAMode (4 bytes): An unsigned 4-byte integer that identifies whether the input mode is Romaji or KANA for Japanese text processors. The value is 0x0000 for all non-Japanese text processors.ValueMeaningKANA_MODE_OFF0x00000000Indicates that the KANA input mode is off.KANA_MODE_ON0x00000001Indicates that the KANA input mode is activated.Z-Order Sync MessagesServer Z-Order Sync Information PDU (TS_RAIL_ORDER_ZORDER_SYNC)The Z-Order Sync Information PDU is sent from the server to the client if the client has advertised support for Z-order sync in the Client Information PDU (section 2.2.2.2.2).01234567891012345678920123456789301HdrWindowIdMarkerHdr (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_ZORDER_SYNC (0x0014).WindowIdMarker (4 bytes): An unsigned 32-bit integer. Indicates the ID of the marker window (section 3.3.1.3), which is used to manage the activation of RAIL windows as specified in section 3.2.5.2.9.2.Window Cloak State Sync MessagesWindow Cloak State Change PDU (TS_RAIL_ORDER_CLOAK)Windows are either in a cloaked or uncloaked state. Changes in the cloak state of a RAIL window on the client, or a remoted window on the server, are communicated by Window Cloak State Change PDU.The client sends the Window Cloak State Change PDU if both the client and server support syncing per-window cloak state (indicated by the TS_RAIL_LEVEL_WINDOW_CLOAKING_SUPPORTED flag in the Remote Programs Capability Set (section 2.2.1.1.1)). The server uses this information to sync the cloak state to the associated window on the server.The server sends the Window Cloak State Change PDU if the client is capable of processing this PDU (indicated by the TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED flag in the Client Information PDU (section 2.2.2.2.2)). The client uses this information to sync the cloak state to the associated window on the client.01234567891012345678920123456789301HdrWindowIdCloakedHdr (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_CLOAK (0x0015).WindowId (4 bytes): An unsigned 32-bit integer. The ID of the window that is to be cloaked or uncloaked.Cloaked (1 byte): An unsigned 8-bit integer that indicates whether the window SHOULD be cloaked or uncloaked.ValueMeaning0x00The window SHOULD be uncloaked.0x01The window SHOULD be cloaked.Power Display Request MessagesPower Display Request PDU (TS_RAIL_ORDER_POWER_DISPLAY_REQUEST)The Power Display Request PDU is sent from the server to the client if the client has advertised support for display-required power request sync in the Client Information PDU (section 2.2.2.2.2).01234567891012345678920123456789301HdrActiveHdr (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_POWER_DISPLAY_REQUEST (0x0016).Active (4 bytes): A 32-bit, unsigned integer. Indicates the active or inactive state of the display-required power request.ValueMeaning0x00000000The display-required power request state is inactive, which means the display of the device SHOULD enter the powered-off state if there is no user input for an extended period.0x00000001The display-required power request state is active, which means the display of the device should remain in the powered-on state even if there is no user input for an extended period.Server Taskbar State MessagesTaskbar Tab Info PDU (TS_RAIL_ORDER_TASKBARINFO)The Taskbar Tab Info PDU is sent from the server to the client when a remote tabbed application adds, removes, or changes the state of a taskbar tab. It is sent only when the client advertises support for the extended shell integration capability (TS_RAIL_LEVEL_SHELL_INTEGRATION_SUPPORTED).01234567891012345678920123456789301headerTaskbarMessageWindowIdTabBodyheader (4 bytes): A TS_RAIL_PDU_HEADER structure. The orderType field of the header MUST be set to TS_RAIL_ORDER_TASKBARINFO (0x0010). TaskbarMessage (4 bytes): An unsigned 32-bit integer. Contains the type of tabbed application event that occurred in the remote session. This field MUST be set to one of the following values.ValueMeaningRAIL_TASKBAR_MSG_TAB_REGISTER0x00000001A remote application added a window to its tab group.RAIL_TASKBAR_MSG_TAB_UNREGISTER0x00000002A remote application removed a window from its tab group.RAIL_TASKBAR_MSG_TAB_ORDER0x00000003The position of a window in the tab group order for a remote application has changed. This message SHOULD be sent immediately after a RAIL_TASKBAR_MSG_TAB_REGISTER message.RAIL_TASKBAR_MSG_TAB_ACTIVE0x00000004The active (selected) tab of a remote application tab group has changed.RAIL_TASKBAR_MSG_TAB_PROPERTIES0x00000005The properties of a tab in a remote application tab group have changed.WindowIdTab (4 bytes): An unsigned 32-bit integer. The window ID of the remote application window whose tab group state is changing.Body (4 bytes): The contents of this field depend on the TaskbarMessage field. The following table outlines the valid values of the TaskbarMessage field and the corresponding values of the Body field.ValueMeaningRAIL_TASKBAR_MSG_TAB_REGISTER0x00000001The window ID of the window that is being added to the taskbar tab group owned by WindowIdTab.RAIL_TASKBAR_MSG_TAB_UNREGISTER0x00000002Not used. The Body field MUST still be present but SHOULD be set to zero.RAIL_TASKBAR_MSG_TAB_ORDER0x00000003The window ID that the tab owned by WindowIdTab SHOULD be placed immediately before in its tab group. If this value is zero, the tab SHOULD be placed at the end of its tab group.RAIL_TASKBAR_MSG_TAB_ACTIVE0x00000004The window ID corresponding to the tab that SHOULD be set active in the tab group owned by WindowIdTab.RAIL_TASKBAR_MSG_TAB_PROPERTIES0x00000005The properties of the tab corresponding to WindowIdTab that are to be set. Valid properties are described by the [MSDN-STPFLAG] enumeration. Accessibility MessagesText Scale Information PDU (TS_RAIL_ORDER_TEXTSCALEINFO)The Text Scale Information PDU is sent from the client to the server during the connection establishment phase and when the client system’s text scale factor is changed. The client communicates the new text scale factor to the server by sending this packet. The server uses this information to change the system text size setting. This packet is only sent if the server has advertised support for the Text Scale Information PDU in the HandshakeEx PDU (section 2.2.2.2.3); otherwise, this packet will not be sent.01234567891012345678920123456789301HdrTextScaleFactorHdr (4 bytes): A TS_RAIL_PDU_HEADER structure (section 2.2.2.1). The orderType field of the header MUST be set to TS_RAIL_ORDER_TEXTSCALEINFO (0x0019).TextScaleFactor (4 bytes): A 32-bit integer. Indicates the text scale factor ranged between 100 and 225, inclusive.Caret Blink Information PDU (TS_RAIL_ORDER_CARETBLINKINFO)The Caret Blink Information PDU is sent from the client to the server during the connection establishment phase and when the client system’s caret blink rate is changed. The client communicates the new caret blink rate to the server by sending this packet. The server uses this information to change the system caret blink rate. This packet is only sent if the server has advertised support for the Caret Blink Information in the HandshakeEx PDU (section 2.2.2.2.3); otherwise, this packet will not be sent.01234567891012345678920123456789301HdrCaretBlinkRateHdr (4 bytes): A TS_RAIL_PDU_HEADER structure (section 2.2.2.1). The orderType field of the header MUST be set to TS_RAIL_ORDER_CARETBLINKINFO (0x001A).CaretBlinkRate (4 bytes): An unsigned 32-bit integer. Indicates the caret blink time to the specified number of milliseconds. The blink time is the elapsed time, in milliseconds, required to invert the pixels of the caret. A value of INFINITE (0xFFFFFFFF) indicates that the caret SHOULD NOT blink.Protocol DetailsCommon DetailsAbstract Data ModelServer State Machine XE "Data model - abstract:server:server state machine" XE "Abstract data model:server:server state machine" XE "Server:abstract data model:server state machine" XE "Data model - abstract:client:server state machine" XE "Abstract data model:client:server state machine" XE "Client:abstract data model:server state machine"Figure SEQ Figure \* ARABIC 5: Server State Machine DiagramStateDescriptionUninitializedThis is the initial state of the server. In this state, the server waits for the Remote Programs Capability Set?(section?2.2.1.1.1) and the Window List Capability Set?(section?2.2.1.1.2) from the client. On receiving these capability sets, the server processes them as specified in section 3.3.5.1.5. If the server finds compatible settings, it transitions to the Initializing state. Otherwise, the connection is terminated (see [MS-RDPBCGR] section 1.3.1.4.2).InitializingIn this state, the server examines the Handshake PDU?(section?2.2.2.2.1) and the Client Information PDU?(section?2.2.2.2.2). On receiving these, the server processes the Handshake PDU as specified in section 3.1.5.2 and the Client Information PDU as specified in section 3.3.5.2.1.1, and transitions to the SyncDesktop state. If the server does not receive the Handshake PDU within a specified time, it can disconnect the connection (see section 3.1.2).SyncDesktopIn this state, the server syncs its desktop with that of the client. The server transitions to this state either during the RAIL connection synchronization (see section 1.3.2.3) or on detection of a desktop switch (see section 3.3.5.1.8). After completion of the desktop sync (as specified in section 3.3.5.1.8), the server transitions to the WaitForData state.WaitForDataIn this state, the server waits for all non-initialization messages received on the static virtual channel (see section 3.3.5.2).On receiving a Client Execute PDU?(section?2.2.2.3.1), the server transitions to the ExecuteApp state.On receiving a Client System Parameters Update PDU?(section?2.2.2.4.1), the server transitions to the UpdateSysParam state.On receiving a Language Bar Information PDU?(section?2.2.2.9.1), the server transitions to the UpdateLanguageBar state.On receiving a Client Window Move PDU?(section?2.2.2.7.4), the server transitions to the MoveWindow state.On receiving a Client Activate PDU?(section?2.2.2.6.1), a Client System Menu PDU?(section?2.2.2.6.2), a Client System Command PDU?(section?2.2.2.6.3), a Client Notify Event PDU?(section?2.2.2.6.4), or a Client Get Application ID PDU?(section?2.2.2.6.5), the server transitions to the HandleWindowUpdates state.On detecting a desktop switch, the server transitions to the SyncDesktop state.ExecuteAppIn this state, the server processes the Client Execute PDU, as specified in section 3.3.5.2.2.1, and sends the Server Execute Result PDU?(section?2.2.2.3.2), as specified in section 3.3.5.2.2.2. The server then transitions back to the WaitForData state.UpdateSysParamIn this state, the server processes the Client System Parameters Update PDU, as specified in section 3.3.5.2.3.1, and transitions back to the WaitForData state.UpdateLanguageBarIn this state, the server processes the Language Bar Information PDU, as specified in section 3.3.5.2.5.5, and transitions back to the WaitForData state.MoveWindowIn this state, the server processes the Client Window Move PDU, as specified in section 3.3.5.2.6.3. If the window ID is valid, the server transitions to the HandleWindowUpdates state. Once the window is moved, the server transitions back to the MoveWindow state. If applicable, the server also sends a Server Move/Size End PDU?(section?2.2.2.7.3) to the client, as specified in section 3.3.5.2.6.4. After all processing is complete, the server transitions back to the WaitForData state.HandleWindowUpdatesIn this state, the server processes local client events relevant to individual windows: the Client Activate PDU, as specified in section 3.3.5.2.5.1; the Client System Menu PDU, as specified in section 3.3.5.2.5.2; the Client System Command PDU, as specified in section 3.3.5.2.5.3; and the Client Notify Event PDU, as specified in section 3.3.5.2.5.4. The server also processes the Client Get Application ID PDU, as specified in section 3.3.5.2.7.1, and sends the Server Get Application ID Response PDU?(section?2.2.2.8.1), as specified in section 3.3.5.2.7.2. After all processing is complete, the server transitions back to the WaitForData state.Icon Cache Support XE "Data model - abstract:server:icon cache support" XE "Abstract data model:server:icon cache support" XE "Server:abstract data model:icon cache support" XE "Data model - abstract:client:icon cache support" XE "Abstract data model:client:icon cache support" XE "Client:abstract data model:icon cache support"If the implementation supports icon caching, then the following state is negotiated between the client and server as part of the Window List Capability Set order (section 2.2.1.1.2), and thereafter maintained on both client and server.NumIconCaches: the number of discrete caches for icons maintained on client and server.NumIconCacheEntries: the number of entries allocated in each icon cache.Once an icon cache capability is established, individual entries in the cache are identified by a Cached Icon Info packet (section 2.2.1.2.4), containing a pair of index values designating the specific icon cache and the entry within that cache.Timers XE "Timers:server" XE "Server:timers" XE "Timers:client" XE "Client:timers"A handshake timer MAY HYPERLINK \l "Appendix_A_24" \o "Product behavior note 24" \h <24> be used by the client and/or server to wait for the Handshake PDU from the sending party. Initialization XE "Initialization:server" XE "Server:initialization" XE "Initialization:client" XE "Client:initialization"The static virtual channel between the client and the server MUST be established before protocol operations can commence (see section 1.3.2.1 for an overview).The Handshake PDU (as specified in section 2.2.2.2.1) is exchanged between the server and the client to establish that both endpoints are ready to begin RAIL mode.The Client Information PDU (as specified in section 2.2.2.2.2) is sent from a client to a server and contains information about RAIL client state and features supported by the client.Higher-Layer Triggered Events XE "Triggered events - higher-layer:server" XE "Higher-layer triggered events:server" XE "Server:higher-layer triggered events" XE "Triggered events - higher-layer:client" XE "Higher-layer triggered events:client" XE "Client:higher-layer triggered events"No higher-layer triggered events are used.Message Processing Events and Sequencing Rules XE "Sequencing rules:server" XE "Message processing:server" XE "Server:sequencing rules" XE "Server:message processing" XE "Sequencing rules:client" XE "Message processing:client" XE "Client:sequencing rules" XE "Client:message processing" The following sections describe construction and processing of common messages.Constructing Handshake PDU XE "Server:handshake PDU" XE "Client:handshake PDU" XE "Construction - handshake PDU" XE "Handshake PDU:construction"The Handshake PDU is constructed during initialization of the remote applications integrated locally (RAIL) virtual channel. The buildNumber field SHOULD be initialized to the build or version of the sending party. This PDU (or alternatively the HandshakeEx PDU (section 2.2.2.2.3) if the sending party is the server) MUST be sent before any other PDU on the virtual channel.Processing Handshake PDU XE "Server:handshake PDU" XE "Client:handshake PDU" XE "Processing - handshake PDU" XE "Handshake PDU:processing"The receiving party SHOULD check the buildNumber field to verify compatibility of the receiver with the sender. HYPERLINK \l "Appendix_A_25" \o "Product behavior note 25" \h <25>The receiving party MUST NOT process any other virtual channel PDUs unless either the Handshake PDU or (if the receiving party is the client) the HandshakeEx PDU (section 2.2.2.2.3) has been received.Timer Events XE "Timer events:server" XE "Server:timer events" XE "Timer events:client" XE "Client:timer events"Upon the expiration of the handshake timer (as specified in section 3.1.2), the receiving party SHOULD drop the connection.Other Local Events XE "Local events:server" XE "Server:local events" XE "Local events:client" XE "Client:local events"No additional events are used.Client DetailsAbstract Data Model XE "Client:abstract data model" XE "Abstract data model:client" XE "Data model - abstract:client" XE "Data model - abstract:client:overview" XE "Abstract data model:client:overview" XE "Client:abstract data model:overview"This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with what is described in this document.Note: It is possible to implement the following conceptual data by using a variety of techniques as long as the implementation produces external behavior that is consistent with what is described in this document.Windowing Support Level XE "Data model - abstract:client:windowing support level" XE "Abstract data model:client:windowing support level" XE "Client:abstract data model:windowing support level"The windowing support level determines whether the server is capable of supporting Windowing Alternate Secondary Drawing Orders and the following flags: WINDOW_ORDER_FIELD_CLIENTAREASIZE, WINDOW_ORDER_FIELD_RPCONTENT, and WINDOW_ORDER_FIELD_ROOTPARENT. This is communicated to the client by the WndSupportLevel field, as part of the Window List Capability Set (section 2.2.1.1.2).Marker Window IDAn ID that uniquely identifies the marker window (section 3.3.1.3) created by the server. The ID of this window is sent to the client in the Z-Order Sync Information PDU (section 2.2.2.11.1). Timers XE "Client:timers" XE "Timers:client" XE "Timers:client" XE "Client:timers"No timers are used.Initialization XE "Client:initialization" XE "Initialization:client" XE "Initialization:client" XE "Client:initialization"None.Higher-Layer Triggered Events XE "Client:higher-layer triggered events" XE "Higher-layer triggered events:client" XE "Triggered events - higher-layer:client" XE "Triggered events - higher-layer:client" XE "Higher-layer triggered events:client" XE "Client:higher-layer triggered events"There are no higher-layer triggered events.Message Processing Events and Sequencing Rules XE "Client:message processing" XE "Message processing:client" XE "Client:sequencing rules" XE "Sequencing rules:client" XE "Sequencing rules:client" XE "Message processing:client" XE "Client:sequencing rules" XE "Client:message processing"The following sections describe construction and processing of client messages.Updates to RDP Core Protocol XE "RDP core:client" XE "Client:RDP core"Constructing Client MCS Connect Initial PDU XE "Client MCS Connect Initial PDU"The Client MCS Connect Initial PDU is constructed by the client during the connection establishment phase, as specified in [MS-RDPBCGR] section 3.2.5.3.3.For remote applications integrated locally (RAIL) clients, the clientNetworkData field (as specified in [MS-RDPBCGR] section 2.2.1.3) MUST be present and MUST contain a CHANNEL_DEF structure in channelDefArray for the RAIL virtual channel. This informs the server that the client wants to use a static virtual channel for communicating RAIL virtual channel messages. HYPERLINK \l "Appendix_A_26" \o "Product behavior note 26" \h <26>Processing Server MCS Connect Response PDU XE "Server MCS Connect Response PDU"This PDU is sent by the server in response to the Client MCS Connect Initial PDU. It is processed by the client, as specified in [MS-RDPBCGR] section 3.2.5.3.4.Constructing Client Info PDU XE "Client Info PDU"The Client Info PDU (as specified in [MS-RDPBCGR] section 2.2.1.11) is constructed by the client during the connection establishment phase (as specified in [MS-RDPBCGR] section 3.2.5.3.11).For remote applications integrated locally (RAIL) clients, the flags field of the Info Packet (as specified in [MS-RDPBCGR] section 2.2.1.11.1.1) MUST have the INFO_RAIL (0x00008000) flag set. This informs the server that the client wants to create a RAIL session.If the client supports Enhanced RemoteApp, the flags field SHOULD also have the INFO_HIDEF_RAIL_SUPPORTED (0x02000000) flag set. This flag requests that the server create a RAIL session in Enhanced RemoteApp mode. Setting this flag does not guarantee that Enhanced RemoteApp will be enabled since the server may not support this mode.Constructing Confirm Active PDU XE "Confirm Active PDU"The Confirm Active PDU is constructed by the client in response to the Demand Active PDU, as specified in [MS-RDPBCGR] section 3.2.5.3.13.2.Remote applications integrated locally (RAIL) clients MUST populate this PDU with two RAIL-specific capabilities in the capabilitySets field of the TS_CONFIRM_ACTIVE_PDU ([MS-RDPBCGR] section 2.2.1.13.2.1) structure: the Remote Programs Capability Set, as specified in section 2.2.1.1.1, and the Window List Capability Set, as specified in section 2.2.1.1.2.The NumIconCaches and NumIconCacheEntries of the Window List Capability Set SHOULD be reported as the minimum of the corresponding values supported by the client, and those reported by the server in the Demand Active PDU. The values MUST not exceed those reported by the server in the Demand Active PDU.Processing Demand Active PDU XE "Demand Active PDU"The Demand Active PDU is processed by the client during the connection establishment phase, as specified in [MS-RDPBCGR] section 3.2.5.3.13.1.Remote applications integrated locally (RAIL) clients MUST verify that this PDU contains two RAIL-specific capabilities in the capabilitySets field of the TS_DEMAND_ACTIVE_PDU ([MS-RDPBCGR] section 2.2.1.13.1.1) structure: the Remote Programs Capability Set, as specified in section 2.2.1.1.1, and the Window List Capability Set, as specified in section 2.2.1.1.2. If it does not contain these capability sets, or if the RailSupportLevel of the Remote Programs Capability Set is not set to at least TS_RAIL_LEVEL_SUPPORTED, or the WndSupportLevel of the Window List Capability Set is TS_WINDOW_LEVEL_NOT_SUPPORTED (0), the client MUST drop the connection.The client SHOULD use the NumIconCaches and NumIconCacheEntries of the Window List Capability Set to determine the values of NumIconCaches and NumIconCacheEntries reported by it in the Confirm Active PDU, as specified in section 3.2.5.1.4.Processing Window Information Orders XE "Window Information Orders"Window Information Orders (section 2.2.1.3.1) inform the client of the following types of window events on the server:Creation of a new window.Updates on window properties for a new or existing window.Updates on icons for a new or existing window.Deletion of an existing window.Registration of a new or existing window as an application desktop toolbar.Deregistration of an existing application desktop toolbar.Updates on the edge to which the application desktop toolbar window is anchored.Upon receipt of a Window Information Order for a new window (the FieldsPresentFlags field of the Hdr contains the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.1.2.1), the client SHOULD create a new RAIL window locally. The client SHOULD store an association of the WindowId reported in the Hdr field with the local RAIL window.Upon receipt of a Window Information Order for an existing window (the FieldsPresentFlags field of Hdr does not contain the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.1.2.1), the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and apply the specified updates to the RAIL window. If no such window can be found, the client SHOULD ignore the order.Upon receipt of a Window Information Order for an icon or cached icon, as specified in sections 2.2.1.3.1.2.2 and 2.2.1.3.1.2.3, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and apply the icon updates to the RAIL window. If no such window can be found, the client SHOULD ignore the order.Upon receipt of a Window Information Order for a deleted window, as specified in section 2.2.1.3.1.2.4, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and destroy it. If no such window can be found, the client SHOULD ignore the order.Upon receipt of a Window Information Order for the registration of a window as an application desktop toolbar, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and register it as an application desktop toolbar. If no such window can be found, the client SHOULD ignore the order.Upon receipt of a Window Information Order for the deregistration of an application desktop toolbar window, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and deregister the application desktop toolbar window. If no such window can be found, the client SHOULD ignore the order.The boundaries of the window (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) only include the visible area of the window, and do not include any optional transparent hit-testable window margins ("resize margins"). However, the Client Window Move PDU (section 2.2.2.7.4) and Client Window Snap PDU (section 2.2.2.7.5) do include resize margins in the window boundaries. For this reason, clients SHOULD NOT expect the window boundaries reported in the Window Information Order (section 2.2.1.3.1.2.1) to match boundaries previously sent in a Window Move/Snap PDU. This applies even if margins were not sent in the Window Information Order. HYPERLINK \l "Appendix_A_27" \o "Product behavior note 27" \h <27>Upon receipt of a Window Information Order for the edge of an application desktop toolbar window, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and update the edge to which the window is anchored. If no such window can be found, the client SHOULD ignore the order.Processing Notification Icon Orders XE "Notification Icon Orders"Notification Icon Information Orders (section 2.2.1.3.2) inform the client of the following types of notification icon events on the server:Creation of a new notification icon.Updates on properties for a new or existing notification icon.Deletion of an existing notification icon.Upon receipt of a Notification Icon Order for a new notification icon (the FieldsPresentFlags field of Hdr contains the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.2.2.1), the client SHOULD create a new RAIL notification icon locally. The client SHOULD store an association of the WindowId and NotifyIconId reported in the Hdr field with the local notification icon. Upon receipt of a notification icon Order for an existing notification icon (the FieldsPresentFlags field of Hdr does not contain the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.2.2.1), the client SHOULD locate the RAIL notification icon that corresponds to the WindowId and NotifyIconId reported in the Hdr field, and then apply the specified updates to the RAIL notification icon. If no such icon can be found, the client SHOULD ignore the Order.Upon receipt of a notification icon Order for a deleted icon, as specified in section 2.2.1.3.2.2.2, the client SHOULD locate the local RAIL notify icon that corresponds to the WindowId and NotifyIconId reported in the Hdr field and destroy it. If no such icon can be found, the client SHOULD ignore the Order.Processing Desktop Information Orders XE "Desktop Information Orders"Desktop Information Orders inform the client of events on the server that are not confined to a single window or notification icon. Processing of these orders is indicated as follows:Upon receipt of a Desktop Information Order, as specified in section 2.2.1.3.3.2.1, with the WINDOW_ORDER_FIELD_DESKTOP_ARC_BEGAN (0x00000008) and the WINDOW_ORDER_FIELD_DESKTOP_HOOKED (0x00000002) flags set in the Hdr field, the client SHOULD discard all of the existing RAIL windows and Notify Icons and prepare for Window Orders (see sections 2.2.1.3.1.2.1 and 2.2.1.3.1.2.4) and Notify Icon Orders (see sections 2.2.1.3.1.2.2and 2.2.1.3.1.2.3) from the server.Upon receipt of a Desktop Information Order for a non-monitored desktop, as specified in section 2.2.1.3.3.2.2, the client SHOULD discard all of the existing RAIL windows and Notify Icons.Upon receipt of a Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_HOOKED (0x00000002) flag set in the Hdr field, the client SHOULD prepare for Window and Notify Icon Orders from the server.Upon receipt of a Desktop Information Order with the NumWindowIds and WindowIds fields present, the client SHOULD apply the specified Z-order of the server's windows to its local RAIL windows.Upon receipt of a Desktop Information Order with the ActiveWindowId field present, the client SHOULD activate the corresponding local RAIL window.Static Virtual Channel Protocol XE "Static Virtual Channel:client" XE "Client:Static Virtual Channel"Initialization Messages XE "Initialization messages"Sending Client Information PDU XE "Client Information PDU"The client information PDU is initialized as specified in section 2.2.2.2.2.Processing HandshakeEx PDUThe client SHOULD check the buildNumber field to verify compatibility of the receiver with the sender. HYPERLINK \l "Appendix_A_28" \o "Product behavior note 28" \h <28>If the TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF (0x00000001) flag in the railHandshakeFlags field is set, the remote session is running in Enhanced RemoteApp mode, and the client SHOULD handle the RDPGFX_MAP_SURFACE_TO_WINDOW_PDU ([MS-RDPEGFX] section 2.2.2.20) message. If this flag is not set, the session is not running in Enhanced RemoteApp mode, even if the client requested it in the Client Info PDU (as specified in section 3.2.5.1.3). In this scenario, the client SHOULD NOT expect to receive Enhanced RemoteApp messages.The client MUST NOT process any other virtual channel PDUs unless either the HandshakeEx PDU (section 2.2.2.2.3) or the Handshake PDU (section 2.2.2.2.1) has been received.Program Launching Messages XE "Program launching messages"Sending Execute PDU XE "Execute PDU"As specified in section 2.2.2.3.1, the client SHOULD store the execute request to match execute requests with Execute Result PDUs from the server. For Server Execute Result PDU, see section 2.2.2.3.2.Processing Execute Result PDU XE "Execute Result PDU"The client SHOULD match the Execute Result PDU with a previously sent Execute PDU and report the results to the user.Local Client System Parameters Update Messages XE "Local client system parameters update messages"Sending System Parameters Update PDU XE "System parameters update PDU"Initialized as specified in section 2.2.2.4.1, this PDU SHOULD be sent at the start of every remote applications integrated locally (RAIL) connection or reconnection and when a system parameter on the client changes its value.Server System Parameters Update Messages XE "Server system parameters update messages"Processing Server System Parameters Update PDU XE "Server system parameters update PDU"On receipt of this PDU, the client SHOULD update its system parameters to those reported by the server. This helps to maintain consistency between local client and remote server settings, which is an important aspect of the seamless experience.Local Client Event Messages XE "Local client event messages"Local Client Event Messages are Virtual Channel PDUs sent from the client to the server specifying user interactions with RAIL windows and notifications that cannot be captured and sent over the regular RDP channel.Sending Activate PDU XE "Activate PDU"The Activate PDU is sent by the client when a RAIL window is activated by a means other than clicking it, such as by pressing ALT+TAB. Note??Mouse clicks on the RAIL window are forwarded to the server via the RDP core protocol. The PDU is initialized as specified in section 2.2.2.6.1.The WindowId field SHOULD be initialized to the ID of an existing window on the server that is associated with the local RAIL window being activated. The RAIL client SHOULD create this association during processing of the Window Information Order for new windows, as specified in section 2.2.1.3.1.2.1.Sending System Menu PDU XE "System Menu PDU"The System Menu PDU is sent by the client when a RAIL window receives a command to display its system menu by a means other than clicking it, such as by right-clicking the taskbar icon for the window.Note??Mouse clicks in the RAIL window are forwarded to the server via the RDP core protocol. The PDU is initialized as specified in section 2.2.2.6.2.The WindowId field SHOULD be initialized to the ID of an existing window on the server that is associated with the local RAIL window. The RAIL client SHOULD create this association during processing of the Window Information Order for new windows, as specified in section 2.2.1.3.1.2.1.Sending System Command PDU XE "System Command PDU"The System Command PDU is sent by the client when a RAIL window receives a system command by a means other than clicking it (for example, by pressing the Windows logo key+M to minimize the window, by clicking the Show Desktop button in the taskbar, or by selecting the system menu by pressing ALT+SPACE). Note??Mouse clicks in the RAIL window are forwarded to the server via the RDP core protocol. The PDU is initialized as specified in section 2.2.2.6.3.The WindowId field SHOULD be initialized to the ID of an existing window on the server that is associated with the local RAIL window. The RAIL client SHOULD create this association during processing of the Window Information Order for new windows, as specified in section 2.2.1.3.1.2.1.Sending Notify Event PDU XE "Notify Event PDU"The Notify Event PDU is sent by the client when a remote applications integrated locally (RAIL) notification icon receives any user interaction via the keyboard or mouse. The PDU is initialized as specified in section 2.2.2.6.4.The WindowId and NotifyIconId fields SHOULD be initialized to the ID of an existing Window and notification icon (respectively) on the server and associated with the local RAIL notification icon. The RAIL client SHOULD create this association during processing of the Notification Icon Information Order for new notification icons, as specified in section 2.2.1.3.2.2.1.Language Bar Information PDUsSending Language Bar Information PDUAfter initialization (as specified in section 2.2.2.9.1), this PDU SHOULD be sent from a client to a server just after sending the RAIL handshake (see section 2.2.2.2.1). This enables the server synchronize its language bar state with the client's.This PDU MUST NOT be sent if the server does not support the Docked Language Bar RAIL capability (TS_RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTED). Processing Language Bar Information PDUUpon receipt of this PDU, the client SHOULD update the status of its language using the Language Bar Information PDU.Window Move Messages XE "Window move messages"Window Move Messages are generated by the server and client to enable the local move/size feature of RAIL.Processing Min Max Info PDU XE "Min Max Info PDU"On receipt of the Min Max Info PDU, if the client supports local move/size, it SHOULD locate the local RAIL window that corresponds to the WindowId field and apply the specified window extents (MaxWidth, MaxHeight, MaxPosX, MaxPosY, MinTrackWidth, MinTrackHeight, MaxTrackWidth, and MaxTrackHeight fields) to it.If no such RAIL window can be found, the client SHOULD ignore this PDU.If the client does not support local move/size, it SHOULD ignore this PDU.Processing Move/Size Start PDU XE "Move/Size Start PDU"On receipt of the Move/Size Start PDU, if the client supports local move/size features, it SHOULD locate the local RAIL window that corresponds to the WindowId field and initiate a move/size of the local RAIL window by using the local Window Manager based on the MoveSizeType field. The client SHOULD also suppress forwarding of keyboard/mouse events to the server to maintain a local-only move/size of the RAIL window.If no RAIL window can be found corresponding to WindowId, the client SHOULD ignore this PDU.If the client does not support local move/size, it SHOULD ignore this PDU.Sending Window Move PDU XE "Window Move PDU"If the client supports local move/size, it SHOULD send the Window Move PDU upon receiving a notification from the local window manager that a local move/size of a RAIL window has ended. The PDU is sent for keyboard–based moves and all resizes, and it is initialized as specified in section 2.2.2.7.4. The WindowId field SHOULD be initialized to the ID of an existing window on the server that is associated with the local RAIL window. The RAIL client SHOULD create this association during processing of the Window Information Order for new windows, as specified in section 2.2.1.3.1.2.1.If the client suppressed forwarding of keyboard/mouse events to the server during processing of the Move/Size Start PDU, it MUST resume the forwarding of these events to the server to allow the server to detect a move/size end of the remote window.Processing Move/Size End PDU XE "Move/Size End PDU"Upon receipt of the Move/Size End PDU, if the client supports local move/size features, it SHOULD locate the local RAIL window that corresponds to the WindowId field and move it to the coordinates specified by the TopLeftX and TopLeftY fields. This ensures synchronization between the final positions of the corresponding moved/resized windows on the server and client.If no RAIL window can be found corresponding to WindowId, the client SHOULD ignore this PDU.If the client does not support local move/size, it SHOULD ignore this PDU.Sending Window Snap PDUIf the server advertises support for window snapping in the HandshakeEx PDU (section 2.2.2.2.3) structure (using the TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED flag, as specified in the HandshakeEx PDU), the client SHOULD send the Window Snap PDU (section 2.2.2.7.5) when it receives a notification from the local window manager that a local RAIL window has been moved, and is able to determine that the move occurred due to the use of Snap or an equivalent feature.If the server does not support window snapping or if the client is unable to detect what feature caused the local RAIL window to be moved, it SHOULD send the Window Move PDU (section 2.2.2.7.4) instead.If the client sends the Window Snap PDU in response to a local RAIL window being snapped, it SHOULD NOT send a Window Move PDU for the same event.Application ID MessagesSending Client Get Application ID PDUAfter being initialized as specified in section 2.2.2.6.5, this PDU MAY be sent from a client to a server after receiving a Window Information Order containing the WINDOW_ORDER_STATE_NEW (0x10000000) flag. Processing Server Get Application ID Response PDUUpon receipt of this PDU, the client SHOULD HYPERLINK \l "Appendix_A_29" \o "Product behavior note 29" \h <29> update the Application ID string of the Window matching the Windows ID received from the server.Processing Server Get Application ID Extended Response PDUUpon receipt of this PDU, the client SHOULD HYPERLINK \l "Appendix_A_30" \o "Product behavior note 30" \h <30> update the Application ID string of the Window matching the Windows ID received from the server. The client SHOULD also cache the ID and the image name of the process that hosts the corresponding window on the server.Z-Order Sync MessagesSending Z-Order Sync Support FlagThe client advertises support for Z-order sync by including the TS_RAIL_CLIENTSTATUS_ZORDER_SYNC (0x00000004) flag in the Client Information PDU (section 2.2.2.2.2). Processing Z-Order Sync Information PDUWhen the client receives the Z-Order Sync Information PDU, the ID of the marker window MUST be stored in the Marker Window ID (section 3.2.1.2) store. If a client-side window that is not remoted from the server (referred to as "Window A") is activated, then the client SHOULD instruct the server to activate the marker window by sending the Client Activate PDU (section 2.2.2.6.1) to the server with the Enabled field set to zero. Furthermore, if the server instructs the client to activate a RAIL window (referred to as "Window B"), the client SHOULD check the position of Window B with respect to the marker window in the WindowIds field of the Actively Monitored Desktop (section 2.2.1.3.3.2.1). Window B SHOULD only be activated if it appears before the marker window in the WindowIds field of the Actively Monitored Desktop Order.Window Cloak State Sync MessagesSending Window Cloak State Change PDUThe Window Cloak State Change PDU (section 2.2.2.12.1) SHOULD be sent by the client when a RAIL window is cloaked or uncloaked on the client (for example, in the case of a virtual desktop feature, when the user switches desktops). A cloaked window MUST be present on the client, but MUST be invisible to the user and MUST NOT receive mouse, pen, or touch input. This PDU ensures that cloaked state is synchronized between client and server.The PDU is initialized as specified in section 2.2.2.12.1. The WindowId field SHOULD be initialized to the ID of an existing window on the server that is associated with the local RAIL window. The RAIL client SHOULD create this association during processing of the Window Information Order for new windows, as specified in section 2.2.1.3.1.2.1.Processing Window Cloak State Change PDUOn receipt of this PDU the client SHOULD cloak or uncloak the RAIL window with the ID specified by the WindowId field. The action of cloaking or uncloaking is specified by the Cloaked field. The client SHOULD NOT send a Window Cloak State Change PDU back to the server as a result of processing this PDU.If no RAIL window can be found corresponding to WindowId, the client SHOULD ignore this PDU.Power Display Request MessagesProcessing Power Display Request PDUOn receipt of this PDU, the client SHOULD update its display-required power request status. If the Active field is set to 0x00000001, then the display on the client device SHOULD remain in the powered-on state even if there is no user input for an extended period.Server Taskbar State MessagesProcessing Taskbar Tab Info PDUOn receipt of this PDU, the client SHOULD update the local window manager to reflect the new tab group state of the tabbed application. If the local window manager does not expose the necessary features to make use of window tabs, the client MAY ignore this PDU.Accessibility MessagesSending Text Scale Information PDUIf the server advertises support for the Text Scale Information PDU in the HandshakeEx PDU (section 2.2.2.2.3) structure (using the TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_TEXT_SCALE_SUPPORTED flag), the client SHOULD send the Text Scale Information PDU (section 2.2.2.15.1) during the connection establishment phase and when the text scale factor of the client system is changed.Sending Caret Blink Information PDUIf the server advertises support for Caret Blink Information in the HandshakeEx PDU (section 2.2.2.2.3) structure (using the TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_CARET_BLINK_SUPPORTED flag), the client SHOULD send the Caret Blink Information PDU (section 2.2.2.15.2) during the connection establishment phase and when the caret blink rate of the client system is changed.Timer Events XE "Client:timer events" XE "Timer events:client" XE "Timer events:client" XE "Client:timer events"None.Other Local Events XE "Client:other local events" XE "Other local events:client" XE "Local events:client" XE "Client:local events"None.Server DetailsAbstract Data Model XE "Server:abstract data model" XE "Abstract data model:server" XE "Data model - abstract:server" XE "Data model - abstract:server:overview" XE "Abstract data model:server:overview" XE "Server:abstract data model:overview"This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with what is described in this document.Note: It is possible to implement the following conceptual data by using a variety of techniques as long as the implementation produces external behavior that is consistent with what is described in this document.Client Local Move/Size Ability Store XE "Data model - abstract:server:client local move/size ability store" XE "Abstract data model:server:client local move/size ability store" XE "Server:abstract data model:client local move/size ability store"The Client Local Move/Size Ability store determines whether the client has the ability to support Local Move/Size in RAIL. This is communicated to the server by the TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE flag as part of Client Information PDU (see section 2.2.2.2.2).Windowing Support Level XE "Data model - abstract:server:windowing support level" XE "Abstract data model:server:windowing support level" XE "Server:abstract data model:windowing support level"The windowing support level determines whether the client is capable of supporting Windowing Alternate Secondary Drawing Orders and the following flags: WINDOW_ORDER_FIELD_CLIENTAREASIZE, WINDOW_ORDER_FIELD_RPCONTENT, and WINDOW_ORDER_FIELD_ROOTPARENT. This is communicated to the server by the WndSupportLevel field, as part of the Window List Capability Set (section 2.2.1.1.2).Marker WindowThe marker window is a server-side window that is not remoted to the client and is used to manage the activation of RAIL windows. This window is destroyed if the client does not advertise support for Z-order sync in the Client Information PDU (section 2.2.2.2.2).Timers XE "Server:timers" XE "Timers:server" XE "Timers:server" XE "Server:timers"No timers are used.Initialization XE "Server:initialization" XE "Initialization:server" XE "Initialization:server" XE "Server:initialization"None.Higher-Layer Triggered Events XE "Server:higher-layer triggered events" XE "Higher-layer triggered events:server" XE "Triggered events - higher-layer:server" XE "Triggered events - higher-layer:server" XE "Higher-layer triggered events:server" XE "Server:higher-layer triggered events"No higher-layer triggered events are used.Message Processing Events and Sequencing Rules XE "Sequencing rules:server" XE "Message processing:server" XE "Server:sequencing rules" XE "Server:message processing"Updates to RDP Core Protocol XE "Server:RDP core" XE "RDP core:server"Processing Client MCS Connect Initial PDU XE "Client MCS Connect Initial PDU"The Client MCS Connect Initial PDU is processed by the server during the connection establishment phase, as specified in [MS-RDPBCGR].Constructing Server MCS Connect Response PDU XE "Server MCS Connect Initial PDU"This PDU is sent by the server in response to the Client MCS Connect Initial PDU, as specified in [MS-RDPBCGR].Processing Client Info PDU XE "Client Info PDU"The Client Info PDU is processed by the server during the connection establishment phase, as specified in [MS-RDPBCGR].If the flags field of the Info Packet (as specified in [MS-RDPBCGR] section 2.2.1.11.1.1) has the INFO_RAIL (0x00008000) flag set, it indicates that the client wants to start a remote applications integrated locally (RAIL) connection. If the server supports RAIL, it SHOULD indicate this by using the Demand Active PDU (see section 3.3.5.1.4).If the flags field of the Info Packet has the INFO_HIDEF_RAIL_SUPPORTED (0x02000000) flag set, it indicates that the client has requested that the RAIL session be created in Enhanced RemoteApp mode. If the server supports Enhanced RemoteApp mode this mode SHOULD be enabled, and upon initialization of the RAIL virtual channel the HandshakeEx PDU (section 2.2.2.2.3) MUST be sent with the TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF (0x00000001) flag set (section 3.3.5.2.1.2). If the INFO_HIDEF_RAIL_SUPPORTED flag is not set, the server MUST NOT enable Enhanced RemoteApp.Constructing Demand Active PDU XE "Demand Active PDU"The Demand Active PDU is constructed by the server during the connection establishment phase, as specified in [MS-RDPBCGR] section 3.3.5.3.13.1.If the client has requested support for remote applications integrated locally (RAIL) in the Client Info PDU (as specified in [MS-RDPBCGR] section 2.2.1.11), and the server supports RAIL, the server MUST specify two RAIL–specific capabilities in the capabilitySets field of the TS_DEMAND_ACTIVE_PDU ([MS-RDPBCGR] section 2.2.1.13.1.1) structure: the Remote Programs Capability Set?(section?2.2.1.1.1) and the Window List Capability Set?(section?2.2.1.1.2).The server MUST specify the number of icon caches supported by using the NumIconCaches and NumIconCacheEntries of the Window List Capability Set. Processing Confirm Active PDU XE "Confirm Active PDU"The Confirm Active PDU is processed by the server, as specified in [MS-RDPBCGR] section 3.3.5.3.13.2.If the client has requested support for remote applications integrated locally (RAIL) in the Client Info PDU (see section 3.2.5.1.3), and the server has indicated support for RAIL in the Demand Active PDU (see section 3.3.5.1.4), the server MUST verify that this PDU contains two RAIL-specific capabilities in the capabilitySets field of the TS_CONFIRM_ACTIVE_PDU ([MS-RDPBCGR] section 2.2.1.13.2.1) structure: the Remote Programs Capability Set?(section?2.2.1.1.1) and the Window List Capability Set?(section?2.2.1.1.2). If it does not contain these capability sets, or the RailSupportLevel of the Remote Programs Capability Set is not set to at least TS_RAIL_LEVEL_SUPPORTED, or the WndSupportLevel of the Window List Capability Set is TS_WINDOW_LEVEL_NOT_SUPPORTED (0), the server MUST drop the connection.The server MUST verify that the NumIconCaches and NumIconCacheEntries of the Window List Capability Set do not exceed the corresponding entries set by the server in the Demand Active PDU. HYPERLINK \l "Appendix_A_31" \o "Product behavior note 31" \h <31> The server MUST also update its icon cache limits to those reported in NumIconCaches and NumIconCacheEntries.Constructing Window Information Orders XE "Window Information Orders"The server generates Window Information Orders to inform the client of the following types of window events on the server:Creation of a new window.Updates on window properties for a new or existing window.Updates on icons for a new or existing window.Deletion of an existing window.Registration of a new or existing window as an application desktop toolbar.Deregistration of an existing application desktop toolbar.The Window Information Orders are constructed as specified in section 2.2.1.3.1.Figure SEQ Figure \* ARABIC 6: An illustration of the window metrics sent in the Window Information OrderConstructing Notification Icon Orders XE "Notification Icon Orders"The server generates Notification Icon Information Orders to inform the client of the following types of notification icon events on the server.Creation of a new notification icon.Updates on properties for a new or existing notification icon.Deletion of an existing notification icon.The Notification Icon Orders are constructed as specified in section 2.2.1.3.2.Constructing Desktop Information Orders XE "Desktop Information Orders"Desktop Information Orders are generated by the server to inform the client of events on the server that are not confined to a single window or notification icon. These events include the following:A client connects to the server that is actively monitoring a desktop. The server generates the following events in order:A Desktop Information Order (see section 2.2.1.3.3.2.1) with the WINDOW_ORDER_FIELD_DESKTOP_ARC_BEGAN (0x00000008) and the WINDOW_ORDER_FIELD_DESKTOP_HOOKED (0x00000002) flags set in the Hdr field to indicate that the synchronization has begun.After all orders specifying windows, icons, and the desktop are sent, the server generates a Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_ARC_COMPLETED (0x00000004) flag set to signal the end of synchronization data.A desktop switch occurred on the server causing the server to stop monitoring the current desktop and (optionally) start monitoring the new desktop. This is indicated by generating the following events in order.A Desktop Information Order for the non-monitored desktop (see section 2.2.1.3.3.2.2).A Desktop Information Order with the WINDOW_ORDER_FIELD_DESKTOP_HOOKED (0x00000002) flag set in the Hdr field. If the server is unable to monitor the new desktop, the server SHOULD NOT send this order.The number and/or Z-order of top-level windows on the server changes. This is indicated by generating a Desktop Information Order with the NumWindowIds and WindowIds fields present.The active window on the server changes. This is indicated by generating a Desktop Information Order with the ActiveWindowId field present.Static Virtual Channel Protocol XE "Static Virtual Channel:server" XE "Server:Static Virtual Channel"Initialization Messages XE "Initialization messages"Processing Client Information PDU XE "Client Information PDU"If the Flags field of the PDU contains the TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE (0x00000001) flag, the client supports Local Move/Size. If the server also supports Local Move/Size, it SHOULD record this fact and SHOULD send Move Messages to the client window when appropriate (see section 2.2.2.7.4).If the Flags field of the PDU contains the TS_RAIL_CLIENTSTATUS_ZORDER_SYNC (0x00000004) flag, the client supports Z-order sync. On receiving this flag, the server SHOULD create the marker window (section 3.3.1.3) and send the ID of this window to the client using the Z-Order Sync Information PDU (section 2.2.2.11.1).If the Flags field of the PDU contains the TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED (0x00000080) flag, the client supports setting the display-required power request. On receiving this flag, the server SHOULD monitor the state of its display-required power request and send it to the client using the Power Display Request PDU (section 2.2.2.13.1).Sending HandshakeEx PDUThe HandshakeEx PDU MUST be constructed as specified in section 2.2.2.2.3.If Enhanced RemoteApp has been enabled for the current RAIL session (section 3.3.5.1.3), the server MUST set the TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF (0x00000001) flag. If it has not been enabled, the server MUST NOT set this flag.If Enhanced RemoteApp is not enabled, and support for the HandshakeEx PDU was not indicated in the Remote Programs Capability Set (section 2.2.1.1.1), the server MUST send the Handshake PDU (section 3.1.5.1) instead of the HandshakeEx PDU.Program Launching Messages XE "Program launching messages"Processing Execute PDU XE "Execute PDU"Upon receipt of this PDU, the server MUST start the application specified in the PDU on the server. The PDU is processed as specified in 2.2.2.3.2.Sending Execute Result PDU XE "Execute Result PDU"This PDU is sent in response to an Execute PDU from the client and is initialized as specified in section 2.2.2.3.2.Local Client System Parameters Update Messages XE "Local client system parameters update messages"Processing System Parameters Update PDU XE "System Parameters Update PDU"Upon receipt of this PDU, the server SHOULD set its system parameters to those reported by the client. This helps applications running remotely to behave consistently with local user settings, which is an important aspect of the seamless experience.Server System Parameters Update Messages XE "System parameters update messages"Sending Server System Parameters Update PDU XE "Server System Parameters Update PDU"This PDU is initialized as specified in section 2.2.2.5.1. This PDU SHOULD be sent at the start of every remote applications integrated locally (RAIL) connection/reconnection, and when a system parameter on the server changes its value.Local Client Event Messages XE "Local client event messages"Processing Activate PDU XE "Activate PDU"Upon receipt of this PDU, the server SHOULD activate or deactivate the remote window whose ID is specified by WindowId and whose activation state is specified by the Enabled field.If no such window exists, the server SHOULD ignore the PDU.Processing System Menu PDU XE "System Menu PDU"On receipt of this PDU, the server SHOULD post a command to the remote window whose ID is specified by WindowId to display its system menu at the coordinates specified by the Left and Top fields.If no such window exists, the server SHOULD ignore the PDU.Processing System Command PDU XE "System Command PDU"Upon receipt of this PDU, the server SHOULD post the system command specified by the Command field to the remote window whose ID is specified by WindowId.If no such window exists, the server SHOULD ignore the PDU. Processing Notify Event PDU XE "Notify Event PDU"Upon receipt of this PDU, the server SHOULD post the message specified by the Message field to the remote notification icon specified by the WindowId and NotifyIconId fields. If no such notify icon exists, the server SHOULD ignore the PDU. Processing Language Bar Information PDUUpon receipt of this PDU, the server MUST first send the status of its language bar to the client using the Language Bar Information PDU. The server MUST then adjust the server-side language bar to match the client's language bar status by making it either float or be docked.Window Move Messages XE "Window move messages"The Window Move messages are generated by the server and client to enable the Local Move/Size feature of RAIL.Sending Min Max Info PDU XE "Min Max Info PDU"This PDU is sent by the server when a user attempts to move or resize a local RAIL window and when the corresponding keyboard input or mouse input forwarded to the server causes the corresponding remote window to begin to move or resize. It is initialized as specified in section 2.2.2.7.1. This PDU SHOULD be sent if the client and server both support local move/size features. Sending Move/Size Start PDU XE "Move/Size Start PDU"This PDU is sent by the server when a user attempts to move or resize a local RAIL window (for example, by dragging the window title with the mouse or resizing the window borders with the mouse), and the corresponding keyboard input or mouse input forwarded to the server causes the corresponding remote window to begin the move or resize. It is initialized as specified in section 2.2.2.7.2. This PDU SHOULD be sent if the client and server both support local move/size features. It SHOULD be sent immediately after the Min Max Info PDU (see section 2.2.2.7.1). Processing Window Move PDU XE "Window Move PDU"On receipt of the Client Window Move PDU section 2.2.2.7.4, the server SHOULD move the remote window specified by the WindowId field to the coordinates specified by the Left, Top, Right, and Bottom fields. If no such Window exists, the server SHOULD ignore the PDU. Sending Move/Size End PDU XE "Move/Size End PDU"This PDU is sent by the server when a user completes a move or resize of a local RAIL window (for example, by releasing the mouse button), and the corresponding keyboard input or mouse input forwarded to the server causes the corresponding remote window to complete the move or resize. It is initialized as specified in section 2.2.2.7.3. This PDU SHOULD be sent if the client and server both support local move/size features. Processing Window Snap PDUOn receipt of the Client Window Snap PDU (section 2.2.2.7.5), the server SHOULD move the remote window specified by the WindowId field to the coordinates specified by the Left, Top, Right, and Bottom fields. When moving the window, the server SHOULD use a feature such as Snap that can restore the window’s size when it is unsnapped. If no such feature is available, the server SHOULD NOT advertise support for this PDU.In all other respects, this PDU is equivalent to the Window Move PDU (section 2.2.2.7.4) and SHOULD be handled the same way.Application ID MessagesProcessing the Get Application ID PDUUpon receipt of the Get Application ID PDU, the server MAY HYPERLINK \l "Appendix_A_32" \o "Product behavior note 32" \h <32> retrieve the Application ID of the window whose window ID is specified in the PDU.If no such window exists, the server SHOULD ignore the PDU.Sending the Get Application ID Response PDUThe Get Application ID Response PDU is sent in response to a Get Application ID PDU from the client and is initialized as specified in section 2.2.2.8.1.Z-Order Sync MessagesProcessing Z-Order Sync Support FlagOn processing the TS_RAIL_CLIENTSTATUS_ZORDER_SYNC (0x00000004) flag in the Client Information PDU (section 2.2.2.2.2), the server SHOULD create the marker window (section 3.3.1.3) and send the ID of this window to the client in the Z-Order Sync Information PDU (section 2.2.2.11.1). If the client does not advertise support for Z-order sync, then the server MUST destroy the marker window, if it exists.Sending Z-Order Sync Information PDUThe server SHOULD send the ID of the marker window to the client in the Z-Order Sync Information PDU (section 2.2.2.11.1).Window Cloak State Sync MessagesProcessing Window Cloak State Change PDUUpon receipt of the Windows Cloak State Change PDU (section 2.2.2.12.1), the server SHOULD cloak or uncloak the remote window whose ID is specified by WindowId as specified by the Cloaked field. The server SHOULD NOT send a Deleted Window Information Order as a result of processing this PDU. The server MUST NOT send a Window Cloak State Change PDU back to the client as a result of processing this PDU.If no such window exists, the server SHOULD ignore the PDU.Sending Window Cloak State Change PDUThe Window Cloak State Change PDU (section 2.2.2.12.1) SHOULD be sent by the server when a remoted window is cloaked or uncloaked (unless the cloak or uncloak occurred as a result of processing a Window Cloak State Change PDU sent by the client). This PDU MUST be initialized as specified in section 2.2.2.12.1.If the client does not support processing the Window Cloak State Change PDU, the server SHOULD send a Deleted Window Information Order (section 2.2.1.3.1.2.4) when a window is cloaked, and a Window Information Order (section 2.2.1.3.1.2.1) when a window is uncloaked.Power Display Request MessagesSending Power Display Request PDUIf the state of its display-required power request changes in the remote session, then the server SHOULD send the new state to the client in the Power Display Request PDU (section 2.2.2.13.1).Server Taskbar State MessagesSending Taskbar Tab Info PDUThe server SHOULD send the Taskbar Tab Info PDU (section 2.2.2.14.1) whenever it determines that the state of a tabbed application’s taskbar tab group has changed. However, the server SHOULD NOT send the PDU if it does not support tabbed applications, or if the client has not advertised support for extended shell integration in the Remote Programs Capability Set (section 2.2.1.1.1).If the client has connected to an existing session, the server SHOULD re-sync the taskbar tab state of its tabbed applications to the client by sending RAIL_TASKBAR_MSG_TAB_REGISTER, RAIL_TASKBAR_MSG_TAB_ORDER, and RAIL_TASKBAR_MSG_TAB_PROPERTIES messages for each window in each tabbed application in the session.Accessibility MessagesProcessing Text Scale Information PDUOn receipt of the Text Scale Information PDU (section 2.2.2.15.1), the server SHOULD use this information to change the system text scale setting. If no such feature is available, the server SHOULD NOT advertise support for this PDU.Processing Caret Blink Information PDUOn receipt of the Caret Blink Information PDU (section 2.2.2.15.2), the server SHOULD use this information to change the caret blink rate. If no such feature is available, the server SHOULD NOT advertise support for this PDU.Timer Events XE "Server:timer events" XE "Timer events:server" XE "Timer events:server" XE "Server:timer events"No timer events are used.Other Local Events XE "Local events:server" XE "Server:local events"Sending Language Bar Information PDUUpon receiving a notification from the server-side language bar indicating that its status was updated, the server MUST then send the updated status of its language bar to the client using the Language Bar Information PDU. This enables the client to stay in sync with the server.Sending Language Profile Information PDUUpon receiving a notification from the client-side text services framework that the current active language profile has changed, the client MUST then send the new active language profile information to the server using the Language Profile Information PDU?(section?2.2.2.10.1). This enables the server to stay in sync with the current active language of the client.Upon receiving this PDU from the client, the server SHOULD change the current server-side active language profile, by using the information sent by the client. This ensures that the server uses the same active language profile as the one being used by the client.Sending Compartment Status Information PDUUpon receiving a notification from the text services framework that the current input method editor (IME) compartments has changed, the client MUST then send the new compartment information to the server using the Compartment Status Information PDU?(section?2.2.2.10.2). This enables the server to stay in sync with the current compartment mode of the client.Similarly, the server is also to send the compartment values to the client if it receives a notification from the server's text services framework.Upon receiving this PDU from the client or server, the IME compartment status is set to the values passed in the PDU.Protocol Examples XE "Examples:overview"The following sections describe several operations as used in common scenarios to illustrate the function of the Remote Desktop Protocol: Remote Programs Virtual Channel Extension.Updates to the RDP Core Protocol XE "Updates to RDP code protocol examples" XE "Examples:updates to RDP code protocol examples"Windowing Alternate Secondary Drawing OrdersNew or Existing WindowsThe following is a network capture of a Window Information Order, sent when a new window is created on the server or when a property on a new or existing window is updated (as specified in 2.2.1.3.1.2.1).00000000 2e 81 00 9e df 08 19 58 01 12 00 00 00 00 00 00 .......X........00000010 00 cf 14 00 01 00 00 05 1a 00 46 00 69 00 6c 00 ..........F.i.l.00000020 65 00 20 00 45 00 78 00 70 00 6c 00 6f 00 72 00 e. .E.x.p.l.o.r.00000030 65 00 72 00 1b 01 00 00 34 01 00 00 07 00 00 00 e.r.....4.......00000040 07 00 00 00 00 00 00 00 07 00 00 00 8d 00 00 00 ................00000050 9a 00 00 00 8e 00 00 00 9a 00 00 00 e6 05 00 00 ................00000060 42 03 00 00 01 00 00 00 00 00 e6 05 42 03 8d 00 B...........B...00000070 00 00 9a 00 00 00 01 00 00 00 00 00 e6 05 42 03 ..............B.2e -> TS_WINDOW_ORDER_HEADER::Header (1 Byte)81 00 -> TS_WINDOW_ORDER_HEADER::OrderSize (2 Bytes) 9e df 08 19 -> TS_WINDOW_ORDER_HEADER::FieldsPresentFlags (4 Bytes) 58 01 12 00 -> WindowId 00 00 00 00 -> OwnerWindowId 00 00 cf 14 -> Style00 01 00 00 -> ExtendedStyle05 -> ShowState1a 00 46 00 69 00 6c 00 65 00 20 00 45 00 78 00 70 00 6c 00 6f 00 72 0065 00 72 00 -> TitleInfo (File Explorer)1b 01 00 00 -> ClientOffsetX (283) 34 01 00 00 -> ClientOffsetY (308) 07 00 00 00 -> WindowLeftResizeMargin (7) 07 00 00 00 -> WindowRightResizeMargin (7)00 00 00 00 -> WindowTopResizeMargin (0)07 00 00 00 -> WindowBottomResizeMargin (7)8d 00 00 00 -> WindowOffsetX (141) 9a 00 00 00 -> WindowOffsetY (154) 8e 00 00 00 -> WindowClientDeltaX (142)9a 00 00 00 -> WindowClientDeltaY (154)e6 05 00 00 -> WindowWidth (1510)42 03 00 00 -> WindowHeight (834)01 00 -> NumWindowRects (1) 00 00 00 00 e6 05 42 03 -> WindowRects (0,0,1510,834) 8d 00 00 00 -> VisibleOffsetX (141) 9a 00 00 00 -> VisibleOffsetY (154) 01 00 -> NumVisibilityRects (1) 00 00 00 00 e6 05 42 03 -> VisibilityRects (0,0,1510,834)Deleted WindowThe following is a network capture of a Window Information Order, sent when an existing window is destroyed on the server (as specified in 2.2.1.3.1.2.4).00000000 2e 0b 00 00 00 00 21 24 00 03 00......!$...2e -> TS_WINDOW_ORDER_HEADER::Header(1 Byte)0b 00 -> TS_WINDOW_ORDER_HEADER::OrderSize(2 Bytes)00 00 00 21 -> TS_WINDOW_ORDER_HEADER::FieldsPresentFlags(4 Bytes) (WINDOW_ORDER_TYPE_WINDOW | WINDOW_ORDER_STATE_DELETED )24 00 03 00 -> WindowId(4 Bytes)New or Existing Notification IconsThe following is a network capture of a Notification Icon Information Order, sent when a new notification icon is created on the server (as specified in 2.2.1.3.2.2.1).00000000 2e 9d 04 01 00 00 52 8e 00 01 00 d2 9c 00 00 40 ......R........@ 00000010 00 2a 20 0e 20 43 00 6f 00 6d 00 6d 00 75 00 6e .* . C.o.m.m.u.n00000020 00 69 00 63 00 61 00 74 00 6f 00 72 00 20 00 2d .i.c.a.t.o.r. .-00000030 00 20 00 4e 00 6f 00 74 00 20 00 73 00 69 00 67 . .N.o.t. .s.i.g00000040 00 6e 00 65 00 64 00 20 00 69 00 6e 00 0e 20 2c .n.e.d. .i.n.. ,00000050 20 00 00 02 20 10 00 10 00 40 00 00 04 fe 03 00 ... 00 fc 01 00 00 fc 01 00 00 c0 01 00 00 80 00 00 .................00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 ................00000090 00 80 01 00 00 f0 3f 00 00 f8 7f 00 00 00 00 00 ......?......... 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000b0 00 00 00 00 00 00 00 00 00 18 36 80 18 1e 38 7f ..........6...8. 000000c0 9c 19 35 96 ef 1a 3c b5 fe 1e 3e ad ee 15 34 8c ..5...<...>...4. 000000d0 8d 14 30 77 1b 00 00 00 00 00 00 00 00 00 00 00 ..0w............ 000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000f0 00 00 00 00 00 1c 38 85 17 1a 34 87 c6 17 31 9d ......8...4...1. 00000100 ff 0d 2c af ff 15 39 cd ff 1a 42 e3 ff 22 49 e0 ..,...9...B.."I. 00000110 fc 17 39 a4 c1 13 30 78 1b 00 00 00 00 00 00 00 ..9...0x........ ……………………………………………….(more icon data) 2e -> TS_NOTIFYICON_ORDER_HEADER::Header(1 Byte)9d 04 -> TS_NOTIFYICON_ORDER_HEADER::OrderSize(2 Bytes)01 00 00 52 -> TS_NOTIFYICON_ORDER_HEADER::FieldsPresentFlags (4 Bytes) WINDOW_ORDER_TYPE_NOTIFY | WINDOW_ORDER_FIELD_NOTIFY_TIP | WINDOW_ORDER_STATE_NEW | WINDOW_ORDER_ICON)8e 00 01 00 -> TS_NOTIFYICON_ORDER_HEADER::WindowIdd2 9c 00 00 -> TS_NOTIFYICON_ORDER_HEADER::NotifyIconId0000000f 4000000010 00 57 00 69 00 6e 00 64 00 6f 00 77 00 73 00 20 00000020 00 54 00 61 00 73 00 6b 00 20 00 4d 00 61 00 6e 00000030 00 61 00 67 00 65 00 72 00 00 00 02 10 10 00 10 00000040 00 6e 00 65 00 64 00 20 00 69 00 6e 00 0e 20 2c -> ToolTip (Communicator - Not signed in )00000050 20 00 00 02 20 10 00 10 00 40 00 00 04 fe 03 00 ... 00 fc 01 00 00 fc 01 00 00 c0 01 00 00 80 00 00 .................00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 ................00000090 00 80 01 00 00 f0 3f 00 00 f8 7f 00 00 00 00 00 ......?......... 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000b0 00 00 00 00 00 00 00 00 00 18 36 80 18 1e 38 7f ..........6...8. 000000c0 9c 19 35 96 ef 1a 3c b5 fe 1e 3e ad ee 15 34 8c ..5...<...>...4. 000000d0 8d 14 30 77 1b 00 00 00 00 00 00 00 00 00 00 00 ..0w............ 000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000f0 00 00 00 00 00 1c 38 85 17 1a 34 87 c6 17 31 9d ......8...4...1. 00000100 ff 0d 2c af ff 15 39 cd ff 1a 42 e3 ff 22 49 e0 ..,...9...B.."I. 00000110 fc 17 39 a4 c1 13 30 78 1b 00 00 00 00 00 00 00 ..9...0x........ -> Icon ……………………………………………….(more icon data)Note??The icon data is significantly large and accounts for the remainder of the order. For the sake of brevity, the icon information in the remaining bytes of the orderSize field has been truncated in this example.Deleted Notification IconsThe following is a network capture of a Notification Icon Information Order, sent when an existing notification icon is deleted on the server (as specified in 2.2.1.3.2.2.2).00000000 2e 0f 00 01 00 00 62 f4 01 03 00 00 00 00 00 .y....B........2e -> TS_NOTIFYICON_ORDER_HEADER::Header(1 Byte)0f 00 -> TS_NOTIFYICON_ORDER_HEADER::OrderSize(2 Bytes)01 00 00 62 -> TS_NOTIFYICON_ORDER_HEADER::FieldsPresentFlags (4 Bytes) WINDOW_ORDER_TYPE_NOTIFY | WINDOW_ORDER_STATE_DELETED | WINDOW_ORDER_FIELD_NOTIFY_TIP | WINDOW_ORDER_ICON)f4 01 03 00 -> TS_NOTIFYICON_ORDER_HEADER::WindowId00 00 00 00 -> TS_NOTIFYICON_ORDER_HEADER::NotifyIconIdActively Monitored DesktopThe following is a network capture of an Actively Monitored Desktop packet (as specified in 2.2.1.3.3.2.1).00000000 2e 14 00 30 00 00 04 a0 00 01 00 02 a0 00 01 00 ...0............ 2e -> TS_DESKTOP_ORDER_HEADER::Header14 00 -> TS_DESKTOP_ORDER_HEADER::OrderSize30 00 00 04 -> TS_DESKTOP_ORDER_HEADER::FieldsPresentFlags (0x4000030) (WINDOW_ORDER_TYPE_DESKTOP | WINDOW_ORDER_FIELD_DESKTOP_ZORDER WINDOW_ORDER_FIELD_DESKTOP_ACTIVEWND )a0 00 01 00 -> ActiveWindowId02 -> NumWindowIds66 00 02 00 a0 00 01 00 -> WindowIdsNon-monitored DesktopThe following is a network capture of a Non-Monitored Desktop packet (as specified in 2.2.1.3.3.2.2).00000000 2e 07 00 01 00 00 04 -> TS_DESKTOP_ORDER_HEADER::Header07 00 -> TS_DESKTOP_ORDER_HEADER::OrderSize01 00 00 04 -> TS_DESKTOP_ORDER_HEADER::FieldsPresentFlags (WINDOW_ORDER_TYPE_DESKTOP | WINDOW_ORDER_FIELD_DESKTOP_NONE)Initialization Messages XE "Initialization messages examples" XE "Examples:initialization messages examples"TS_RAIL_ORDER_HANDSHAKEThe following are network captures of the Handshake PDU (TS_RAIL_ORDER_HANDSHAKE, as specified in 2.2.2.2.1).Server to Client00000000 05 00 08 00 71 17 00 00 ....q...05 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_HANDSHAKE (5) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)71 17 00 00 -> buildNumber (4 Bytes)Client to Server00000000 05 00 08 00 71 17 00 00 ....q...05 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_HANDSHAKE (5) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)71 17 00 00 -> buildNumber (4 Bytes)TS_RAIL_ORDER_CLIENTSTATUSThe following is a network capture of the Client Caps PDU (TS_RAIL_ORDER_CLIENTSTATUS, as specified in 2.2.2.2.2).00000000 0b 00 08 00 01 00 00 00 ........0b 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_CLIENTSTATUS (11) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)01 00 00 00 ->Flags (4 Bytes)Launching Messages XE "Launching messages examples" XE "Examples:Launching messages examples"TS_RAIL_ORDER_EXECThe following is a network capture of the Client Execute PDU (TS_RAIL_ORDER_EXEC, as specified in 2.2.2.3.1). 00000000 01 00 5e 00 08 00 14 00 26 00 18 00 7c 00 7c 00 ..^.....&...|.|. 00000010 69 00 65 00 78 00 70 00 6c 00 6f 00 72 00 65 00 i.e.x.p.l.o.r.e. 00000020 66 00 3a 00 5c 00 77 00 69 00 6e 00 64 00 6f 00 f.:.\.w.i.n.d.o. 00000030 77 00 73 00 5c 00 73 00 79 00 73 00 74 00 65 00 w.s.\.s.y.s.t.e. 00000040 6d 00 33 00 32 00 77 00 77 00 77 00 2e 00 62 00 m.3.2.w.w.w...b. 00000050 69 00 6e 00 67 00 2e 00 63 00 6f 00 6d 00 00 00 i.n.g...c.o.m...Header:01 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_EXEC (1) (2 Bytes)5e 00 -> TS_RAIL_PDU_HEADER::orderLength = 94 (2 Bytes)08 00 -> Flags : TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS (2 Bytes) 14 00 -> ExeOrFileLength : 0x14 (2 Bytes) 26 00 -> WorkingDirLength : 0x26 (2 Bytes) 18 00 -> ArgumentsLen : 0x18 (2 Bytes) 7c 00 7c 00 69 00 65 00 78 00 70 00 6c 00 6f 00 72 00 65 00 -> ExeOrFile : ||iexplore (20 Bytes) 66 00 3a 00 5c 00 77 00 69 00 6e 00 64 00 6f 00 77 00 73 00 5c 00 73 00 79 00 73 00 74 00 65 00 6d 00 33 00 32 00 -> WorkingDir: f:\windows\system32 (38 bytes)77 00 77 00 77 00 2e 00 62 00 69 00 6e 00 67 00 2e 00 63 00 6f 00 6d 00 -> Arguments (24 bytes) TS_RAIL_ORDER_EXEC_RESULTThe following is a network capture of the Server Execute Result PDU (TS_RAIL_ORDER_EXEC_RESULT, as specified in 2.2.2.3.2).00000000 80 00 24 00 08 00 03 00 15 00 00 00 00 00 14 00 ..$.............00000010 7c 00 7c 00 57 00 72 00 6f 00 6e 00 67 00 41 00 |.|.W.r.o.n.g.A.00000020 70 00 70 00 p.p.80 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_EXEC_RESULT(128) (2 Bytes)24 00 -> TS_RAIL_PDU_HEADER::orderLength = 36 (2 Bytes)08 00 -> Flags : TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS (2 Bytes) 03 00 -> ExecResult : 3 (2 Bytes) 15 00 00 00 -> RawResult : 0x15 (4 Bytes) 00 00 -> Padding : 0 (2 Bytes) 14 00 -> ExeOrFileLength : 0x14 (2 Bytes)7c 00 7c 00 57 00 72 00 6f 00 6e 00 67 00 41 00 70 00 70 00 : ExeOrFile : ||WrongApp (20 Bytes)Local Client System Parameters Update Messages XE "Local client system parameters update messages examples" XE "Examples:local client system parameters update messages examples"TS_RAIL_ORDER_SYSPARAMThe following are network captures of the Client System Parameters Update PDU (TS_RAIL_ORDER_SYSPARAM, as specified in 2.2.2.4.1).00000000 03 00 12 00 43 00 00 00 7e 00 00 00 02 00 00 00 ....C...~.......00000010 00 00 ..03 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_SYSPARAM(3) (2 Bytes)12 00 -> TS_RAIL_PDU_HEADER::orderLength = 18 (2 Bytes)43 00 00 00 -> SystemParam: SPI_SETHIGHCONTRAST (4 Bytes)7e 00 00 00 -> Flags: 0x7e (4 Bytes)02 00 00 00 -> ColorSchemeLength: 2 (4 Bytes)00 00 -> ColorScheme: 0 (2 Bytes)Local Client Event Messages XE "Local client event messages examples" XE "Examples:local client event messages examples"TS_RAIL_ORDER_ACTIVATEThe following is a network capture of the Client Activate PDU (TS_RAIL_ORDER_ACTIVATE, as specified in 2.2.2.6.1).00000000 02 00 09 00 4e 01 01 00 01 ....N....02 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_ACTIVATE(2) (2 Bytes)09 00 -> TS_RAIL_PDU_HEADER::orderLength = 9 (2 Bytes)4e 01 01 00 -> WindowId:: 0x1014e (4 Bytes)01 -> Enabled (1 Byte)TS_RAIL_ORDER_SYSMENUThe following is a network capture of the Client System Menu PDU (TS_RAIL_ORDER_SYSMENU, as specified in 2.2.2.6.2).00000000 0c 00 0c 00 22 01 09 00 a4 ff 4a 02 ....".....J.0c 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_SYSMENU(12) (2 Bytes)0c 00 -> TS_RAIL_PDU_HEADER::orderLength = 12 (2 Bytes)22 01 09 00 -> WindowId:: 0x90122 (4 Bytes)a4 ff -> Left (2 Bytes)4a 02 -> Top (2 Bytes)TS_RAIL_ORDER_SYSCOMMANDThe following is a network capture of the Client System Command PDU (TS_RAIL_ORDER_SYSCOMMAND, as specified in 2.2.2.6.3).00000000 04 00 0a 00 52 00 02 00 20 f0 ....R... .04 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_SYSCOMMAND(4) (2 Bytes)0a 00 -> TS_RAIL_PDU_HEADER::orderLength = 10 (2 Bytes)52 00 02 00 -> WindowId:: 0x20052 (4 Bytes)20 f0 -> Command (2 Bytes)TS_RAIL_ORDER_NOTIFY_EVENTThe following is a network capture of the Client Notify Event PDU (TS_RAIL_ORDER_NOTIFY_EVENT, as specified in 2.2.2.6.4).00000000 06 00 10 00 aa 01 02 00 02 00 00 00 04 02 00 00 ................06 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_NOTIFY_EVENT(6) (2 Bytes)10 00 -> TS_RAIL_PDU_HEADER::orderLength = 16 (2 Bytes)aa 01 02 00 -> WindowId (4 Bytes)02 00 00 00 -> NotifyIconId (4 Bytes)04 02 00 00 -> Message (4 Bytes)TS_RAIL_ORDER_LANGBARINFOThe following is a network capture of the Language Bar Information PDU (TS_RAIL_ORDER_LANGBARINFO, as specified in 2.2.2.9.1).0D 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_LANGBARINFO (13) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)01 00 00 00 -> LanguageBarStatus:: 0x00000001 (4 Bytes)TS_RAIL_ORDER_GET_APPID_REQThe following is a network capture of the Client Get Application ID PDU (TS_RAIL_ORDER_GET_APPID_REQ, as specified in section 2.2.2.6.5).00000000 0E 00 08 00 52 00 02 00 ....R...0E 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_GET_APPID_REQ (14) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)52 00 02 00 -> WindowId:: 0x20052 (4 Bytes)TS_RAIL_ORDER_GET_APPID_RESPThe following is a network capture of the Server Get Application ID Response PDU (TS_RAIL_ORDER_GET_APPID_RESP, as specified in section 2.2.2.8.1). 00000000 0F 00 08 02 52 00 02 00 6d 00 69 00 63 00 72 00 ....R...m.i.c.r.00000010 6f 00 73 00 6f 00 66 00 74 00 2e 00 77 00 69 00 o.s.o.f.t...w.i.00000020 6e 00 64 00 6f 00 77 00 73 00 2e 00 6e 00 6f 00 n.d.o.w.s...n.o.00000030 74 00 65 00 70 00 61 00 64 00 00 00 00 00 00 00 t.e.p.a.d....... 00000040 00 ...00000200 00 00 00 00 00 00 00 00 ........0F 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_GET_APPID_RESP (15) (2 Bytes)08 02 -> TS_RAIL_PDU_HEADER::orderLength = 520 (2 Bytes)52 00 02 00 -> WindowId:: 0x20052 (4 Bytes)6d 00 69 00 63 00 72 00 6f 00 73 00 6f 00 66 00 74 00 2e 00 77 00 69 00 6e 00 64 006f 00 77 00 73 00 2e 00 6e 00 6f 00 74 00 65 00 70 00 61 00 64 00 00 ... -> ApplicationId:: microsoft.windows.notepad (512 Bytes)Window Move Messages XE "Window move messages examples" XE "Examples:window move messages examples"TS_RAIL_ORDER_WINDOWMOVEThe following is a network capture of the Client Window Move PDU (TS_RAIL_ORDER_WINDOWMOVE, as specified in 2.2.2.7.4).00000000 08 00 10 00 20 00 02 00 09 03 00 01 db 05 88 01 .... ...........08 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_WINDOWMOVE(8) (2 Bytes)10 00 -> TS_RAIL_PDU_HEADER::orderLength = 16 (2 Bytes)20 00 02 00 -> WindowId (4 Bytes)09 03 -> Left(2 Bytes)00 01 -> Top(2 Bytes)db 05 -> Right(2 Bytes)88 01 -> Bottom(2 Bytes)TS_RAIL_ORDER_LOCALMOVESIZEThe following is a network capture of the Server Move/Size Start PDU (TS_RAIL_ORDER_LOCALMOVESIZE, as specified in 2.2.2.7.2).00000000 09 00 10 00 94 00 01 00 01 00 08 00 2c 05 e9 03 ............,...09 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_LOCALMOVESIZE(9) (2 Bytes)10 00 -> TS_RAIL_PDU_HEADER::orderLength = 16 (2 Bytes)94 00 01 00 -> WindowId (4 Bytes)01 00 -> IsMoveSizeStart (2 Bytes)08 00 -> MoveSizeType (2 Bytes)2c 05 -> PosX (2 Bytes)e9 03 -> PosY (2 Bytes)TS_RAIL_ORDER_MINMAXINFOThe following is a network capture of the Server Min Max Info PDU (TS_RAIL_ORDER_MINMAXINFO, as specified in 2.2.2.7.1).*00000000 0a 00 18 00 94 00 01 00 48 06 b8 04 00 00 00 00 ........H.......*00000010 70 00 1b 00 4c 06 bc 04 p...L...0a 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_MINMAXINFO(10) (2 Bytes)18 00 -> TS_RAIL_PDU_HEADER::orderLength = 24 (2 Bytes)94 00 01 00 -> WindowId (4 Bytes)48 06 -> MaxWidth (2 Bytes)b8 04 -> MaxHeight (2 Bytes)00 00 -> MaxPosX (2 Bytes)00 00 -> MaxPosY (2 Bytes)70 00 -> MinTrackWidth (2 Bytes)1b 00 -> MinTrackHeight (2 Bytes)4c 06 -> MaxTrackWidth (2 Bytes)bc 04 -> MaxTrackHeight (2 Bytes)Z-Order Sync MessagesTS_RAIL_ORDER_ZORDER_SYNCThe following is a network capture of the Server Z-Order Sync Information PDU (TS_RAIL_ORDER_ZORDER_SYNC, as specified in section 2.2.2.11.1).14 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_ZORDER_SYNC (20) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)10 05 40 00 -> WindowIdMarker (4 Bytes)Power Display Request MessagesTS_RAIL_ORDER_POWER_DISPLAY_REQUESTThe following is a network capture of the Server Power Display Request PDU (TS_RAIL_ORDER_POWER_DISPLAY_REQUEST, as specified in section 2.2.2.13.1).16 00 -> TS_RAIL_PDU_HEADER::orderType = TS_RAIL_ORDER_POWER_DISPLAY_REQUEST (22) (2 Bytes)08 00 -> TS_RAIL_PDU_HEADER::orderLength = 8 (2 Bytes)01 00 00 00 -> Active:: 0x00000001 (4 Bytes)Security XE "Security"The following sections specify security considerations for implementers of the Remote Desktop Protocol: Remote Programs Virtual Channel Extension.Security Considerations for Implementers XE "Security:implementer considerations" XE "Implementer - security considerations" XE "Implementers - security considerations"There are no security considerations for Remote Desktop Protocol: Remote Programs Virtual Channel Extension messages because all traffic is secured by the underlying Remote Desktop Protocol core protocol. For an overview of the implemented security-related mechanisms, see [MS-RDPBCGR] section 5.Index of Security Parameters XE "Security:parameter index" XE "Index of security parameters" XE "Parameters - security index" XE "Parameters - security"There are no security parameters in the Remote Desktop Protocol: Remote Programs Virtual Channel Extension.Appendix A: Product Behavior XE "Product behavior" The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.Windows Vista operating systemWindows Server 2008 operating systemWindows 7 operating systemWindows Server 2008 R2 operating systemWindows 8 operating systemWindows Server 2012 operating systemWindows 8.1 operating systemWindows Server 2012 R2 operating systemWindows 10 operating systemWindows Server 2016 operating systemWindows Server operating systemWindows Server 2019 operating system Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription. HYPERLINK \l "Appendix_A_Target_1" \h <1> Section 2.2.1.1.1: Microsoft implementations set TS_RAIL_LEVEL_SUPPORTED to 1 in the following versions of Windows: Windows Server 2008, Windows Server 2008 R2 operating system, Windows Server 2012, Windows 7 Enterprise, Windows 7 Enterprise N, Windows 7 Ultimate, Windows 7 Ultimate N, and Windows 8.Microsoft implementations set TS_RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTED to 1 in the following versions of Windows: Windows Server 2008 R2, Windows Server 2012, Windows 7 Enterprise, Windows 7 Enterprise N, Windows 7 Ultimate, Windows 7 Ultimate N, and Windows 8.Microsoft implementations set TS_RAIL_LEVEL_SUPPORTED to 0 on other versions when that capability is sent and the server does not support Remote Programs. HYPERLINK \l "Appendix_A_Target_2" \h <2> Section 2.2.1.1.2: Windows sends the TS_WINDOW_LEVEL_SUPPORTED_EX value to the client; only Windows Vista and Windows Server 2008 send the TS_WINDOW_LEVEL_SUPPORTED value to the client. HYPERLINK \l "Appendix_A_Target_3" \h <3> Section 2.2.1.3.1.2.1: Windows does not set this flag in any server implementation. HYPERLINK \l "Appendix_A_Target_4" \h <4> Section 2.2.1.3.1.2.1: Windows does not set this flag in any server implementation. HYPERLINK \l "Appendix_A_Target_5" \h <5> Section 2.2.1.3.1.2.1: Windows does not set this flag in any server implementation. HYPERLINK \l "Appendix_A_Target_6" \h <6> Section 2.2.1.3.1.2.1: Only Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2 distinguish between window offsets and window visible region offsets. This means that for those products VisibleOffsetX is not guaranteed to be equal to WindowOffsetX. HYPERLINK \l "Appendix_A_Target_7" \h <7> Section 2.2.1.3.1.2.1: Only Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2 distinguish between window offsets and window visible region offsets. This means that for those products VisibleOffsetY is not guaranteed to be equal to WindowOffsetY. HYPERLINK \l "Appendix_A_Target_8" \h <8> Section 2.2.1.3.1.2.2: Windows applications display large icons in elements such as the Alt-Tab dialog box and on the desktop, and place small icons in elements such as the window's title bar and taskbar buttons. HYPERLINK \l "Appendix_A_Target_9" \h <9> Section 2.2.1.3.1.2.3: Windows applications display large icons in elements such as the Alt-Tab dialog box and on the desktop, and place small icons in elements such as the window's title bar and taskbar buttons. HYPERLINK \l "Appendix_A_Target_10" \h <10> Section 2.2.1.3.2.2.1: The WINDOW_ORDER_CACHED_ICON flag is not set in Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 implementations. HYPERLINK \l "Appendix_A_Target_11" \h <11> Section 2.2.1.3.2.2.3: Microsoft implementations set minimum value to 10000 (10 seconds) and the maximum value to 30000 (30 seconds). HYPERLINK \l "Appendix_A_Target_12" \h <12> Section 2.2.2.3.1: The length of the ArgumentsLen field is set to a maximum of 16,000 bytes, except in Windows Vista and Windows Server 2008 R2 where the maximum is set to 520 bytes. HYPERLINK \l "Appendix_A_Target_13" \h <13> Section 2.2.2.3.2: This contains a Win32 error code. For more information, see [MS-ERREF]. HYPERLINK \l "Appendix_A_Target_14" \h <14> Section 2.2.2.4.2: Sets the High-Contrast parameters using the Win32 API. For more information, see [MSDN-HIGHCONTRAST]. HYPERLINK \l "Appendix_A_Target_15" \h <15> Section 2.2.2.4.2: Uses the Windows–specific name of the color scheme. HYPERLINK \l "Appendix_A_Target_16" \h <16> Section 2.2.2.5.1: This system parameter is supported in Windows. For more information, see ([MSDN-SysParamsInfo]). HYPERLINK \l "Appendix_A_Target_17" \h <17> Section 2.2.2.6.5: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows. HYPERLINK \l "Appendix_A_Target_18" \h <18> Section 2.2.2.8.1: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows. HYPERLINK \l "Appendix_A_Target_19" \h <19> Section 2.2.2.8.2: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows. HYPERLINK \l "Appendix_A_Target_20" \h <20> Section 2.2.2.9.1: This option is not available on Windows Vista and Windows Server 2008. HYPERLINK \l "Appendix_A_Target_21" \h <21> Section 2.2.2.9.1: This option is not available on Windows Vista and Windows Server 2008. HYPERLINK \l "Appendix_A_Target_22" \h <22> Section 2.2.2.9.1: This option is available on Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019 only. HYPERLINK \l "Appendix_A_Target_23" \h <23> Section 2.2.2.9.1: This option is available on Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019 only. HYPERLINK \l "Appendix_A_Target_24" \h <24> Section 3.1.2: Microsoft implementations use 30 seconds as the time-out value. HYPERLINK \l "Appendix_A_Target_25" \h <25> Section 3.1.5.2: Windows implementations ignore any incompatibility resulting from checking the buildNumber field between the sender and the receiver. HYPERLINK \l "Appendix_A_Target_26" \h <26> Section 3.2.5.1.1: Windows implementations use RAIL as the name of the virtual channel. HYPERLINK \l "Appendix_A_Target_27" \h <27> Section 3.2.5.1.6: Windows 10 v1607 operating system, Windows Server 2016, Windows 10 v1703 operating system, Windows 10 v1709 operating system, Windows 10 v1803 operating system, Windows 10 v1809 operating system, Windows Server 2019, and Windows 10 v1903 operating system only send transparent hit-testable margins for resizable windows. HYPERLINK \l "Appendix_A_Target_28" \h <28> Section 3.2.5.2.1.2: Windows implementations ignore any incompatibility resulting from checking the buildNumber field between the sender and the receiver. HYPERLINK \l "Appendix_A_Target_29" \h <29> Section 3.2.5.2.8.2: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows. HYPERLINK \l "Appendix_A_Target_30" \h <30> Section 3.2.5.2.8.3: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows. HYPERLINK \l "Appendix_A_Target_31" \h <31> Section 3.3.5.1.5: In Windows implementations the NumIconCaches and NumCacheEntries fields for each cache are set to 0 if the values in the Windows List Capability Sets exceed the corresponding entries set in the server cache. HYPERLINK \l "Appendix_A_Target_32" \h <32> Section 3.3.5.2.7.1: Only Windows Vista and Windows Server 2008 do not use the Application ID string to identify and group windows.Change Tracking XE "Change tracking" XE "Tracking changes" This section identifies changes that were made to this document since the last release. Changes are classified as Major, Minor, or None. The revision class Major means that the technical content in the document was significantly revised. Major changes affect protocol interoperability or implementation. Examples of major changes are:A document revision that incorporates changes to interoperability requirements.A document revision that captures changes to protocol functionality.The revision class Minor means that the meaning of the technical content was clarified. Minor changes do not affect protocol interoperability or implementation. Examples of minor changes are updates to clarify ambiguity at the sentence, paragraph, or table level.The revision class None means that no new technical changes were introduced. Minor editorial and formatting changes may have been made, but the relevant technical content is identical to the last released version.The changes made to this document are listed in the following table. For more information, please contact [email protected] class2.2.2.1 Common Header (TS_RAIL_PDU_HEADER)Added new values, TS_RAIL_ORDER_TEXTSCALEINFO and TS_RAIL_ORDER_CARETBLINKINFO, to the orderType field of the TS_RAIL_PDU_HEADER packet for this version of Windows Client and Server.Major2.2.2.2.3 HandshakeEx PDU (TS_RAIL_ORDER_HANDSHAKE_EX)Added new values, TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_TEXT_SCALE_SUPPORTED and TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_CARET_BLINK_SUPPORTED, to the railHandshakeFlags field of the HandshakeEx PDU.Major2.2.2.15 Accessibility MessagesNew section, Accessibility Messages, created for this version of Windows Client and Server.Major2.2.2.15.1 Text Scale Information PDU (TS_RAIL_ORDER_TEXTSCALEINFO)New section, Text Scale Information PDU (TS_RAIL_ORDER_TEXTSCALEINFO), created for this version of Windows Client and Server.Major2.2.2.15.2 Caret Blink Information PDU (TS_RAIL_ORDER_CARETBLINKINFO)New section, Caret Blink Information PDU (TS_RAIL_ORDER_CARETBLINKINFO), created for this version of Windows Client and Server.Major3.2.5.1.4 Constructing Confirm Active PDU10082 : Added a reference to explain the capabilitySets field of the TS_CONFIRM_ACTIVE_PDU structure.Major3.2.5.1.5 Processing Demand Active PDU10082 : Added a reference to explain the capabilitySets field of the TS_DEMAND_ACTIVE_PDU structure.Major3.2.5.2.8.1 Sending Client Get Application ID PDU10082 : Changed Windows Information Order to Window Information Order.Minor3.2.5.2.13 Accessibility MessagesNew section, Accessibility Messages, created for this version of Windows Client and Server.Major3.2.5.2.13.1 Sending Text Scale Information PDUNew section, Sending Text Scale Information PDU, created for this version of Windows Client and Server.Major3.2.5.2.13.2 Sending Caret Blink Information PDUNew section, Sending Caret Blink Information PDU, created for this version of Windows Client and Server.Major3.3.5.1.4 Constructing Demand Active PDU10082 : Added a reference to explain the capabilitySets field of the TS_DEMAND_ACTIVE_PDU structure. Major3.3.5.1.5 Processing Confirm Active PDU10082 : Added a reference to explain the capabilitySets field of the TS_CONFIRM_ACTIVE_PDU structure. Major3.3.5.2.12 Accessibility MessagesNew section, Accessibility Messages, created for this version of Windows Client and Server.Major3.3.5.2.12.1 Processing Text Scale Information PDUNew section, Processing Text Scale Information PDU, created for this version of Windows Client and Server.Major3.3.5.2.12.2 Processing Caret Blink Information PDUNew section, Processing Caret Blink Information PDU, created for this version of Windows Client and Server.Major4.1.1.1 New or Existing Windows10081 : Changed TS_WINDOW_ORDER_HEADER::Flags to TS_WINDOW_ORDER_HEADER::Header in the network capture.Major4.1.1.2 Deleted Window10081 : Changed TS_WINDOW_ORDER_HEADER::Flags to TS_WINDOW_ORDER_HEADER::Header in the network capture.Major4.1.1.3 New or Existing Notification Icons10081 : Changed TS_NOTIFYICON_ORDER_HEADER::Flags to TS_NOTIFYICON_ORDER_HEADER::Header in the network capture.Major4.1.1.4 Deleted Notification Icons10081 : Changed TS_NOTIFYICON_ORDER_HEADER::Flags to TS_NOTIFYICON_ORDER_HEADER::Header in the network capture.Major4.1.1.5 Actively Monitored Desktop10081 : Changed TS_DESKTOP_ORDER_HEADER::Flags to TS_DESKTOP_ORDER_HEADER::Header in the network capture.Major4.1.1.6 Non-monitored Desktop10081 : Changed TS_DESKTOP_ORDER_HEADER::Flags to TS_DESKTOP_ORDER_HEADER::Header in the network capture.Major4.3.1 TS_RAIL_ORDER_EXEC10082 : Changed ArgumentsLength to ArgumentsLen in the network capture.MajorIndexAAbstract data model client PAGEREF section_e881ac41157342adaef6531226b35e1680 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_e881ac41157342adaef6531226b35e1680 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_6a9ab549d8ac4142b50e3308beb3a26c80 server PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 client local move/size ability store PAGEREF section_ea4a1fc875b1468485d71948203288d989 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_b5f384dff2ea410cbca832a2d645e26d89Activate PDU (section 3.2.5.2.5.1 PAGEREF section_5fabb5c2abc84af282eceef707bf401585, section 3.3.5.2.5.1 PAGEREF section_5c6ba574472947e5b2168a30e83501d194)Actively_Monitored_Desktop packet PAGEREF section_7ed2eff1c56542ad8e0d9bd9b858421f40Applicability PAGEREF section_92005164b1904da882301d837641e24018CCached_Icon packet PAGEREF section_4e42886db7e64f27aad6da2e297edf1733Capability negotiation PAGEREF section_1d4d2882d7b549daa3c604c954089dab19Capability sets PAGEREF section_a399c109e9db4819b2e889c4eb9001c020Change tracking PAGEREF section_be25de72a63e415f9283b0853918ae34111Client abstract data model PAGEREF section_e881ac41157342adaef6531226b35e1680 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_e881ac41157342adaef6531226b35e1680 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_6a9ab549d8ac4142b50e3308beb3a26c80 handshake PDU (section 3.1.5.1 PAGEREF section_104a9f003e664c6a8399ea9af1d7136f79, section 3.1.5.2 PAGEREF section_192084cf6d6849f5895928207bf35bc279) higher-layer triggered events (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.2.4 PAGEREF section_dc5ac19f1de34a05af564886871bac3280) initialization (section 3.1.3 PAGEREF section_ef03cda0ac67467da1bce3c6e4cb513979, section 3.2.3 PAGEREF section_c83aaf4b40f047bc8b8a61cb953e6dbd80) local events (section 3.1.7 PAGEREF section_72fb1b172ffb4b248be2b243276ddfe280, section 3.2.7 PAGEREF section_a60b047549ed40ecb596776b48a75e2989) message processing (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.2.5 PAGEREF section_7fd9f234dfe049ff8ade24e0a243da2680) other local events PAGEREF section_a60b047549ed40ecb596776b48a75e2989 RDP core PAGEREF section_6382fab111244115a07f8bf667fca60b81 sequencing rules (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.2.5 PAGEREF section_7fd9f234dfe049ff8ade24e0a243da2680) Static Virtual Channel PAGEREF section_47d3a17bde9c432cbd8acbe34106645a84 timer events (section 3.1.6 PAGEREF section_594bc37d0c6e471bb73569a07fbd420980, section 3.2.6 PAGEREF section_5b288b0c2a8f42c7b5e8049fb40a655e89) timers (section 3.1.2 PAGEREF section_a78e0d2834cf47bebf5cf4a54609c57379, section 3.2.2 PAGEREF section_52602dc8b4ec4cf48e9da7c4096c861480)Client Info PDU (section 3.2.5.1.3 PAGEREF section_e4e74bfa205f4c2ca47640052e5691ac81, section 3.3.5.1.3 PAGEREF section_9753a02b4769494e9d7983a1efb0a61490)Client Information PDU (section 3.2.5.2.1.1 PAGEREF section_8c290a00677c4c27a81404f418fe6c2b84, section 3.3.5.2.1.1 PAGEREF section_aec87a87e73a4c83829d5a1ee15253e693)Client MCS Connect Initial PDU (section 3.2.5.1.1 PAGEREF section_fee5058f51a64097ae0df34ed0bfeafa81, section 3.3.5.1.1 PAGEREF section_309c54d9853e4c86913c64e02e22841c90)Common structures PAGEREF section_4763d23b06f140b686a310f596b09e2b23Confirm Active PDU (section 3.2.5.1.4 PAGEREF section_0f321286f60247b89350848841a5e64681, section 3.3.5.1.5 PAGEREF section_098ad313d68c4bc9ab4cfd63199f3bd990)Construction - handshake PDU PAGEREF section_104a9f003e664c6a8399ea9af1d7136f79DData model - abstract client PAGEREF section_e881ac41157342adaef6531226b35e1680 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_e881ac41157342adaef6531226b35e1680 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_6a9ab549d8ac4142b50e3308beb3a26c80 server PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 client local move/size ability store PAGEREF section_ea4a1fc875b1468485d71948203288d989 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_b5f384dff2ea410cbca832a2d645e26d89Deleted_Notification_Icon packet PAGEREF section_b0f8b4391eef48acafc7d4745e590c5a38Deleted_Window packet PAGEREF section_a0a90438516d47ed9c59df050e65c38034Demand Active PDU (section 3.2.5.1.5 PAGEREF section_c0e1c5c563d640abb7fdc334f40d7e5081, section 3.3.5.1.4 PAGEREF section_196961569d3b4bf9a31e9b724a6fd30790)Desktop PAGEREF section_40135f1026264a608059827e8b480a7f39Desktop Information Orders (section 3.2.5.1.8 PAGEREF section_827796b7f8a64a4ea19f94863dcdc1e183, section 3.3.5.1.8 PAGEREF section_eba0f9ce88974bbfa80b84fb414575af92)EEnhanced RemoteApp PAGEREF section_ead02bce64ef41d6aa068565956b9fe717Examples initialization messages examples PAGEREF section_523864a90f9447f4b8a92a604818ef7e101 Launching messages examples PAGEREF section_a11027844f754c96af4777b34b0a9fde102 local client event messages examples PAGEREF section_c7e3ee0e0e5d4a1ab59f817e74ff64eb103 local client system parameters update messages examples PAGEREF section_8745d1ebc20e47729536df9dc3a20686103 overview PAGEREF section_bc9cc68d81b545a79c660d63a74953a599 updates to RDP code protocol examples PAGEREF section_3b4492e36ff34338acc03278260d1a8599 window move messages examples PAGEREF section_7e1ad6685fca43a397ee2113d72f85b0105Execute PDU (section 3.2.5.2.2.1 PAGEREF section_802c9f28ade6435e93c0c2353e8f3dfd84, section 3.3.5.2.2.1 PAGEREF section_25e1922b4e304617b4dab696b09e8c1b93)Execute Result PDU (section 3.2.5.2.2.2 PAGEREF section_824fe64c00e94ce59d478d1eda36fc0584, section 3.3.5.2.2.2 PAGEREF section_679de2a360f24851ab2392ffee2b9c6894)FFields - vendor-extensible PAGEREF section_2ab94598772d48298c46a95d7967f14519GGlobally Unique Identifier (GUID) packet PAGEREF section_80ac56ea2859447d9e3997ef6f03b6ee70Glossary PAGEREF section_d2c7f732cbd7483cb4090c7c308a987911HHandshake PDU construction PAGEREF section_104a9f003e664c6a8399ea9af1d7136f79 processing PAGEREF section_192084cf6d6849f5895928207bf35bc279HandshakeEx PDU (TS_RAIL_ORDER_HANDSHAKE) packet PAGEREF section_5cec541427de442e8d4ac8f8b41f389944Higher-layer triggered events client (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.2.4 PAGEREF section_dc5ac19f1de34a05af564886871bac3280) server (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.3.4 PAGEREF section_a2dc09378f3249c08ed7872d7721c8cd90)IImplementer - security considerations PAGEREF section_5cd7af9e7d3f4d359d637d1a4ce28ae7107Implementers - security considerations PAGEREF section_5cd7af9e7d3f4d359d637d1a4ce28ae7107Index of security parameters PAGEREF section_b1ad0041a42640fe87f5450269dfd8e4107Informative references PAGEREF section_0f4c775aca064fd8a68c9f251a3bac1313Initialization client (section 3.1.3 PAGEREF section_ef03cda0ac67467da1bce3c6e4cb513979, section 3.2.3 PAGEREF section_c83aaf4b40f047bc8b8a61cb953e6dbd80) server (section 3.1.3 PAGEREF section_ef03cda0ac67467da1bce3c6e4cb513979, section 3.3.3 PAGEREF section_a2a6850e4b3b41f196a0711db0092aa790)Initialization messages (section 2.2.2.2 PAGEREF section_cfb3fe515f2a4144882267e25ac88cab43, section 3.2.5.2.1 PAGEREF section_09d86bd6d80d4ae88a62fe4fa9dacee184, section 3.3.5.2.1 PAGEREF section_bd68708340734dd1b1e17bf2e373004993)Initialization messages examples PAGEREF section_523864a90f9447f4b8a92a604818ef7e101Introduction PAGEREF section_3aa1de2c63534cc8b33a8907ca386c6711LLaunching messages examples PAGEREF section_a11027844f754c96af4777b34b0a9fde102Local client event messages (section 2.2.2.6 PAGEREF section_4b55412c076045f2a3e46af46ebcb6f055, section 3.2.5.2.5 PAGEREF section_e7425906a84d40fe9e7d1705c832b37f84, section 3.3.5.2.5 PAGEREF section_a31fcabb451c440da2894b07ef29f41594)Local client event messages examples PAGEREF section_c7e3ee0e0e5d4a1ab59f817e74ff64eb103Local client system parameters update messages (section 2.2.2.4 PAGEREF section_24302cea409649b8950d9d48ebb198f848, section 3.2.5.2.3 PAGEREF section_c6b6d65f1ba7436fbe3fbc224b35417984, section 3.3.5.2.3 PAGEREF section_3f5b24f51d3f41bfa92b9ac462ba266794)Local client system parameters update messages examples PAGEREF section_8745d1ebc20e47729536df9dc3a20686103Local events client (section 3.1.7 PAGEREF section_72fb1b172ffb4b248be2b243276ddfe280, section 3.2.7 PAGEREF section_a60b047549ed40ecb596776b48a75e2989) server (section 3.1.7 PAGEREF section_72fb1b172ffb4b248be2b243276ddfe280, section 3.3.7 PAGEREF section_4c0a1da2664f496897898f7f8a37995c97)MMessage processing client (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.2.5 PAGEREF section_7fd9f234dfe049ff8ade24e0a243da2680) server (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.3.5 PAGEREF section_ea834053d5114be1985d9c96c5d6bd9090)Messages flows (section 1.3.2 PAGEREF section_a5f2ff5e412d49839b25c642368af74314, section 1.3.2.1 PAGEREF section_a70d006856d648afa1299a9f2e1852c614) overview PAGEREF section_9fbbe2977bba40b29ce2053df310044020 RDP core PAGEREF section_ac35979c04b34c9bb09232fd58d637bf20 Static Virtual Channel PAGEREF section_446ba8b83190431cb0797d7bc097108241 Static Virtual Channel Protocol PAGEREF section_446ba8b83190431cb0797d7bc097108241 syntax PAGEREF section_50446afe385c42ca96fb974a5816c61220 transport PAGEREF section_400bcd9891f74fb293a08fc03f2d174d20 Updates to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification PAGEREF section_ac35979c04b34c9bb09232fd58d637bf20Min Max Info PDU (section 3.2.5.2.7.1 PAGEREF section_b29b9f8225ba4d4e9b56e2eb2f3473f586, section 3.3.5.2.6.1 PAGEREF section_eb88bc4515594ec986f613f40c018cac95)Move/Size End PDU (section 3.2.5.2.7.4 PAGEREF section_b78fe2e303bf4eadbc9f0c3b09d03cdf86, section 3.3.5.2.6.4 PAGEREF section_4e78e158dc9e419d97ccba96e459df1595)Move/Size Start PDU (section 3.2.5.2.7.2 PAGEREF section_e6d908af57b940028ea3938373cae35086, section 3.3.5.2.6.2 PAGEREF section_0bf18e14187c4a338855a38d1c1f02ba95)NNon_monitored_Desktop packet PAGEREF section_d41b06088f294b93b8c533b18dc7c4d041Normative references PAGEREF section_d60f309558d44cc7bc3077a07b2e76fa13Notification icon PAGEREF section_13b16e67ac764ea0af55fa7f728e1f7935Notification Icon Orders (section 3.2.5.1.7 PAGEREF section_e09aa7928efd4bdfbeaa29c677e1a7a183, section 3.3.5.1.7 PAGEREF section_52cf88418d4a4b2f91204390aec869aa92)Notification_Icon_Information_Order packet PAGEREF section_54be5b64200a4b7da57a20e523bcf3ab35Notify Event PDU (section 3.2.5.2.5.4 PAGEREF section_f7298831f9ce429e80d1db8a7fcfe3ef85, section 3.3.5.2.5.4 PAGEREF section_aa04ab9fbac24a4d87948141a25d589494)OOther local events client PAGEREF section_a60b047549ed40ecb596776b48a75e2989Overview (synopsis) PAGEREF section_485e6f6d24014a9c933046454f0c5aba13PParameters - security PAGEREF section_b1ad0041a42640fe87f5450269dfd8e4107Parameters - security index PAGEREF section_b1ad0041a42640fe87f5450269dfd8e4107Preconditions PAGEREF section_55231359deb04145bc39cbe2486e2ab518Prerequisites PAGEREF section_55231359deb04145bc39cbe2486e2ab518Processing - handshake PDU PAGEREF section_192084cf6d6849f5895928207bf35bc279Product behavior PAGEREF section_8edad5f901a74a70a7a05902d66386d9108Program launching messages (section 2.2.2.3 PAGEREF section_aa0247cd23394acda54d0216b402876a45, section 2.2.2.3.1 PAGEREF section_98a6e3c3c2a942ccad910d9a6c21113845, section 3.2.5.2.2 PAGEREF section_d36452dd43684e1389102901fdee39b484, section 3.3.5.2.2 PAGEREF section_1616683a5bd14e2c93744b90e0558ccc93)RRAIL local move/size PAGEREF section_348a2e913ea5415dad67348d96c3f1bd16RAIL server-client synchronization PAGEREF section_64e832e8f53a49fa82b938d72d33bb4915RAIL session connection PAGEREF section_a70d006856d648afa1299a9f2e1852c614 disconnection PAGEREF section_86c0bda85ed14b24a5c883b2b06bb99715 logoff PAGEREF section_86c0bda85ed14b24a5c883b2b06bb99715 reconnection PAGEREF section_86c0bda85ed14b24a5c883b2b06bb99715RAIL virtual channel messages PAGEREF section_2239529b966b49e4aa7dedf96008c70f16RDP core client PAGEREF section_6382fab111244115a07f8bf667fca60b81 messages PAGEREF section_ac35979c04b34c9bb09232fd58d637bf20 server PAGEREF section_8f9a6f72580c42e8afc72c0c09579e8890References PAGEREF section_9375a5bf4dba434690c08375feef467012 informative PAGEREF section_0f4c775aca064fd8a68c9f251a3bac1313 normative PAGEREF section_d60f309558d44cc7bc3077a07b2e76fa13Relation to RDP core protocol PAGEREF section_f9c2bc3654154c2ca780633d0f8fe02d14Relationship to other protocols PAGEREF section_bd275c72be9f413a92dde10e005da00118Remote_Programs_Capability_Set packet PAGEREF section_36a25e2125e14954aae809aaf6715c7920SSecurity PAGEREF section_c55b8de1721f441fa08b5906ef95233d107 implementer considerations PAGEREF section_5cd7af9e7d3f4d359d637d1a4ce28ae7107 parameter index PAGEREF section_b1ad0041a42640fe87f5450269dfd8e4107Sequencing rules client (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.2.5 PAGEREF section_7fd9f234dfe049ff8ade24e0a243da2680) server (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.3.5 PAGEREF section_ea834053d5114be1985d9c96c5d6bd9090)Server abstract data model PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 client local move/size ability store PAGEREF section_ea4a1fc875b1468485d71948203288d989 icon cache support PAGEREF section_bbc3a53eb2f44b349e337ecd9b4d7f3f79 overview PAGEREF section_14054377f3554bcbaa24a3c951ce794c89 server state machine PAGEREF section_247135fb6f7e43b8a988f88ccdac12e777 windowing support level PAGEREF section_b5f384dff2ea410cbca832a2d645e26d89 handshake PDU (section 3.1.5.1 PAGEREF section_104a9f003e664c6a8399ea9af1d7136f79, section 3.1.5.2 PAGEREF section_192084cf6d6849f5895928207bf35bc279) higher-layer triggered events (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.3.4 PAGEREF section_a2dc09378f3249c08ed7872d7721c8cd90) initialization (section 3.1.3 PAGEREF section_ef03cda0ac67467da1bce3c6e4cb513979, section 3.3.3 PAGEREF section_a2a6850e4b3b41f196a0711db0092aa790) local events (section 3.1.7 PAGEREF section_72fb1b172ffb4b248be2b243276ddfe280, section 3.3.7 PAGEREF section_4c0a1da2664f496897898f7f8a37995c97) message processing (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.3.5 PAGEREF section_ea834053d5114be1985d9c96c5d6bd9090) RDP core PAGEREF section_8f9a6f72580c42e8afc72c0c09579e8890 sequencing rules (section 3.1.5 PAGEREF section_14f8e77953e74c159ac8760912c57ec779, section 3.3.5 PAGEREF section_ea834053d5114be1985d9c96c5d6bd9090) Static Virtual Channel PAGEREF section_81de49435ba847a18de06a1d8f79bc5693 timer events (section 3.1.6 PAGEREF section_594bc37d0c6e471bb73569a07fbd420980, section 3.3.6 PAGEREF section_7e32778e861840bfb5f632806eea50ef97) timers (section 3.1.2 PAGEREF section_a78e0d2834cf47bebf5cf4a54609c57379, section 3.3.2 PAGEREF section_ac3d19fbeb3e49c892156c663e72836c89)Server MCS Connect Initial PDU PAGEREF section_06ed1fac2b8846aaaa3fa284697853e390Server MCS Connect Response PDU PAGEREF section_1f59effe73274d0bbe9c39248a5c5e9a81Server system parameters update messages (section 2.2.2.5 PAGEREF section_3e08369df84a4f2095aec9ffa4f7547754, section 2.2.2.5.1 PAGEREF section_e3488398f8784e90837d44297ae1cfcf54, section 3.2.5.2.4 PAGEREF section_a028b65fffd8428ca95f3ddeba6be40884)Server system parameters update PDU (section 3.2.5.2.4.1 PAGEREF section_7bd194761b3d43e99525e61bbd44aa4084, section 3.3.5.2.4.1 PAGEREF section_64880f92ee8d49e7b4385295cc68e33194)Server_Move_Size_End_PDU packet PAGEREF section_ef108a0ec9a34418b0e37db01f02331362Server_Move_Size_Start_PDU packet PAGEREF section_cc3cf49ee798477fad141a40e1aa839e60Server_System_Parameters_Update_PDU packet PAGEREF section_e3488398f8784e90837d44297ae1cfcf54Standards assignments PAGEREF section_9a92ecb1dbc44b919ae4da7125c5300819Static Virtual Channel client PAGEREF section_47d3a17bde9c432cbd8acbe34106645a84 messages PAGEREF section_446ba8b83190431cb0797d7bc097108241 server PAGEREF section_81de49435ba847a18de06a1d8f79bc5693Static Virtual Channel Protocol message PAGEREF section_446ba8b83190431cb0797d7bc097108241Structures PAGEREF section_4763d23b06f140b686a310f596b09e2b23Syntax - message PAGEREF section_50446afe385c42ca96fb974a5816c61220System Command PDU (section 3.2.5.2.5.3 PAGEREF section_efdfce146d194dff87d15df50a11a92d85, section 3.3.5.2.5.3 PAGEREF section_3d68988d2de74dbd855507482456a8ec94)System Menu PDU (section 3.2.5.2.5.2 PAGEREF section_959c535ee6b34030b04f4906e1f5d0ef85, section 3.3.5.2.5.2 PAGEREF section_f11603806d56411a81aadb213b9adc8494)System parameters update messages PAGEREF section_063e00061aa5459bb65e08c3ae7c4bfe94System parameters update PDU (section 3.2.5.2.3.1 PAGEREF section_4769f3026a6a47c6b2b8d5f8725f07ca84, section 3.3.5.2.3.1 PAGEREF section_53f84f55e4f842809ac3c2cdc53f661b94)TTimer events client (section 3.1.6 PAGEREF section_594bc37d0c6e471bb73569a07fbd420980, section 3.2.6 PAGEREF section_5b288b0c2a8f42c7b5e8049fb40a655e89) server (section 3.1.6 PAGEREF section_594bc37d0c6e471bb73569a07fbd420980, section 3.3.6 PAGEREF section_7e32778e861840bfb5f632806eea50ef97)Timers client (section 3.1.2 PAGEREF section_a78e0d2834cf47bebf5cf4a54609c57379, section 3.2.2 PAGEREF section_52602dc8b4ec4cf48e9da7c4096c861480) server (section 3.1.2 PAGEREF section_a78e0d2834cf47bebf5cf4a54609c57379, section 3.3.2 PAGEREF section_ac3d19fbeb3e49c892156c663e72836c89)Tracking changes PAGEREF section_be25de72a63e415f9283b0853918ae34111Transport PAGEREF section_400bcd9891f74fb293a08fc03f2d174d20Transport - message PAGEREF section_400bcd9891f74fb293a08fc03f2d174d20Triggered events - higher-layer client (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.2.4 PAGEREF section_dc5ac19f1de34a05af564886871bac3280) server (section 3.1.4 PAGEREF section_6c0d9214be2c4ff1b93bf0760e305bcb79, section 3.3.4 PAGEREF section_a2dc09378f3249c08ed7872d7721c8cd90)TS_CACHED_ICON_INFO packet PAGEREF section_fbb8b21b45024b6c9a09dd1d19986fa324TS_DESKTOP_ORDER_HEADER packet PAGEREF section_baa0691605fe41f2b12746355ab5742c39TS_HIGHCONTRAST packet PAGEREF section_dd2718ac0c5b41d6bd785e4d13a7fdbf50TS_ICON_INFO packet PAGEREF section_7b096ea03dc748e5b3469e0fad34ac0423TS_NOTIFY_ICON_INFOTIP packet PAGEREF section_7d476f1e31f742fc8daf9a90807266d638TS_NOTIFYICON_ORDER_HEADER packet PAGEREF section_2ffb6c70c8294a1b90101d5bfd83ba3635TS_RAIL_ORDER_ACTIVATE packet PAGEREF section_8765a61316594423beb3a6cd3b4808d855TS_RAIL_ORDER_CLIENTSTATUS packet PAGEREF section_743e782df59b40b5a0f3adc74e68a2ff43TS_RAIL_ORDER_COMPARTMENTINFO_BODY packet PAGEREF section_9781c6b631c249d080bdef7378862b2371TS_RAIL_ORDER_EXEC packet PAGEREF section_98a6e3c3c2a942ccad910d9a6c21113845TS_RAIL_ORDER_EXEC_RESULT packet PAGEREF section_e17375d3cc9943b38a22192a816647b547TS_RAIL_ORDER_GET_APPID_REQ packet PAGEREF section_fc3108d4de2c4e96bbb7fe5a274ff80259TS_RAIL_ORDER_GET_APPID_RESP packet PAGEREF section_aa0bcd85f0ee404bbae0200bd4afab7265TS_RAIL_ORDER_HANDSHAKE packet PAGEREF section_cec4eb83b30443c98378b5b8f5e7082a43TS_RAIL_ORDER_LANGBARINFO packet PAGEREF section_b89f729a96d944be80392f3d55b5bdf466TS_RAIL_ORDER_LANGUAGEIMEINFO packet PAGEREF section_f09de18b902c413cbbd74560a4493d2a68TS_RAIL_ORDER_MINMAXINFO packet PAGEREF section_d5d57cb6bedf423ba2366a1f88fc2f9d59TS_RAIL_ORDER_NOTIFY_EVENT packet PAGEREF section_cce43d39cacc4d28aa5b3af736a8992457TS_RAIL_ORDER_SYSCOMMAND packet PAGEREF section_cdda93452f824e3888141a932b93424156TS_RAIL_ORDER_SYSMENU packet PAGEREF section_9a778a466f3c4e3baa76aee659fd639c56TS_RAIL_ORDER_SYSPARAM packet PAGEREF section_60344497883f47118b9a828d1c58019548TS_RAIL_ORDER_WINDOWMOVE packet PAGEREF section_495acc38df8342ec8ed1b8d58c04726263TS_RAIL_PDU_HEADER packet PAGEREF section_fcc18e69a1824db0a1eac52783eb488c41TS_RECTANGLE_16 packet PAGEREF section_d61c987a847f4e90b8a17dac21fa6f1d23TS_WINDOW_ORDER_HEADER packet PAGEREF section_137d998ca927475a8ea1f0c662b8981525UUNICODE_STRING packet PAGEREF section_e5c41806f5d14e51af551c40cc47cec923Updates to RDP code protocol examples PAGEREF section_3b4492e36ff34338acc03278260d1a8599Updates to the Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification message PAGEREF section_ac35979c04b34c9bb09232fd58d637bf20VVendor-extensible fields PAGEREF section_2ab94598772d48298c46a95d7967f14519Versioning PAGEREF section_1d4d2882d7b549daa3c604c954089dab19WWindow information PAGEREF section_6dca9b909d454544bde194bdbab01f0d25Window Information Orders (section 3.2.5.1.6 PAGEREF section_d75d9415541e4075b7d861205ff25a3982, section 3.3.5.1.6 PAGEREF section_5e1bc8a4ceca4ccb8dbbdef9716eb4ec91)Window move messages (section 2.2.2.7 PAGEREF section_20cbf1bd676a460f9da327060315afd759, section 3.2.5.2.7 PAGEREF section_9be50b92b9734db6ad1380578158150586, section 3.3.5.2.6 PAGEREF section_8b387d0ecff945ddb561d90669b6e52a95)Window move messages examples PAGEREF section_7e1ad6685fca43a397ee2113d72f85b0105Window Move PDU (section 3.2.5.2.7.3 PAGEREF section_63d45d9f023443f999b6e110383442ba86, section 3.3.5.2.6.3 PAGEREF section_a81c153b5c6643a6aa162ad47d246b4895)Window_Icon packet PAGEREF section_6e2ee1eb33d14ad9a3c2cc6fb2e4ad4e33Window_Information_Order packet PAGEREF section_2d36758d3fb548238c4b9b81a9c8ff3e25Window_List_Capability_Set packet PAGEREF section_82ec7a69f7e34294830d666178b35d1522Windowing alternate secondary drawing orders PAGEREF section_2061e8f65f3944a8ab496707e04f60cb25 ................

................

In order to avoid copyright disputes, this page is only a partial summary.

Online Preview   Download


Page 4

    • https://5y1.org/info/blink-for-windows-10_1_d7fc55.html

      Blink. runs, it does not affect any devices on the SES, and only continues to flash the LED on the Arduino under it. We are going to change the . Blink. sketch to blink one of the LEDs on the SES. Ensure that the jumper on the SES board that is labeled . RED-RGB. is connecting the rightmost two pins of the 3-pin header, which selects the . RED ...

      Tag:download blink for computer on windows 10

    • https://5y1.org/info/blink-for-windows-10_1_ab7aeb.html

      Make sure all windows are rolled up and all doors are shut. From outside the car LOCK the car door with the key. From outside the car UNLOCK the car door with the key. Enter vehicle and close all of the doors and do not lock them. Start the car’s engine. Turn engine off and remove key. Simultaneously depress and release brake and gas pedals 1 ...

      Tag:blink camera app for windows

    • https://5y1.org/info/blink-for-windows-10_1_2aab17.html

      Required Reading Philosophy: The Pebblebrook English Department believes that the required reading assignment is an opportunity for students to establish a broad literary foundation and exercise independent reading and thinking skills.

      Tag:amazon blink for windows 10

    • The flash/blink rate falls outside the danger range. The current blink rate was measured at 1.75HZ. The flashing occurs in a small percentage, less that 10% of the screen) 1194.21(l) When electronic forms are used, the form shall allow people using Assistive Technology to access the information, field elements, and functionality required for ...

      Tag:monitor my blink camera from windows 10

    • https://5y1.org/info/blink-for-windows-10_1_3c6e78.html

      Name of Product: Windows 10 Mail and Calendar. Description of Product: Mail and Calendar. Platform: Universal. Product Build: 17.8104.40507.0. Conformance to accessibility standards has been evaluated by external suppliers under the DHS Trusted Tester Program. For more information please email us. Accessibility Website: Microsoft Accessibility

      Tag:blink camera monitor on pc

    • https://5y1.org/info/blink-for-windows-10_1_a62fa5.html

      Universal Windows apps, available in Windows 10 as part of the Universal Windows Platform, share functionality, usability and accessibility across the various editions of Windows 10 for the PC and larger tablets and the Windows 10 Mobile edition for phones and small tablets.

      Tag:blink camera software for windows

    • https://5y1.org/info/blink-for-windows-10_1_05b9a3.html

      Blink reflex curves are rectified. Onset latencies are analyzed for each sweep separately and a mean value for the block is calculated. ... The precise time windows for peri-ictal and inter-ictal vary with headache type. For episodic migraine, an interval of at least 72h from the last and before the next attack is generally accepted for ...

      Tag:blink home monitor for windows 10

    • https://5y1.org/info/blink-for-windows-10_1_c6beaf.html

      Prepare for the Take 10 Experience. Review the Take 10 Experience page (this Blink page) Schedule 10 minute daily segments as recurring appointments on your calendar. Select from the suggested Take 10 resource folders (found under Featured Topics on the SkillSoft home page in the left hand column): Take 10 for Leaders (change management topic)

      Tag:blink software download windows 10

    • https://5y1.org/info/blink-for-windows-10_1_f92ac7.html

      Oct 16, 2014 · SSN General Meeting Minutes . October 16, 2014. 12:00-12:50pm. SERF 232. Attendance approximately 25. Submitted by Kim Kane. Welcome & Jennifer from Garden of Eden Organics CSA (10 mins). Jennifer talked about what a CSA (community supported agriculture) is and when you join Garden of Eden Organics, it helps support local farmers.

      Tag:download blink for computer on windows 10

    • https://5y1.org/info/blink-for-windows-10_1_24bea1.html

      Windows 10 (64-bit) installation for ABI 3130xl. Microsoft has rolled-out the final support of Windows 7 with free security updates. As such, facilities with networked instruments running on Windows 7 must upgrade to Windows 10, isolate the instruments within their organization’s network, or pay Microsoft for continued security support.

      Tag:blink camera app for windows