Changeset 40672 in vbox for trunk/src/VBox
- Timestamp:
- Mar 28, 2012 10:12:31 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 77117
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDisplay.cpp
r34130 r40672 553 553 * but a new resolution will be read in this poll loop. 554 554 */ 555 for (;;) 555 VMMDevDisplayChangeRequest2 displayChangeRequest = {0}; 556 displayChangeRequest.header.size = sizeof(VMMDevDisplayChangeRequest2); 557 displayChangeRequest.header.version = VMMDEV_REQUEST_HEADER_VERSION; 558 displayChangeRequest.header.requestType = VMMDevReq_GetDisplayChangeRequest2; 559 displayChangeRequest.eventAck = VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; 560 BOOL fDisplayChangeQueried = DeviceIoControl(gVBoxDriver, VBOXGUEST_IOCTL_VMMREQUEST(sizeof(VMMDevDisplayChangeRequest2)), &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest2), 561 &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest2), &cbReturned, NULL); 562 if (!fDisplayChangeQueried) 556 563 { 557 /* get the display change request */ 558 VMMDevDisplayChangeRequest2 displayChangeRequest = {0}; 559 displayChangeRequest.header.size = sizeof(VMMDevDisplayChangeRequest2); 564 /* Try the old version of the request for old VBox hosts. */ 565 displayChangeRequest.header.size = sizeof(VMMDevDisplayChangeRequest); 560 566 displayChangeRequest.header.version = VMMDEV_REQUEST_HEADER_VERSION; 561 displayChangeRequest.header.requestType = VMMDevReq_GetDisplayChangeRequest 2;567 displayChangeRequest.header.requestType = VMMDevReq_GetDisplayChangeRequest; 562 568 displayChangeRequest.eventAck = VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; 563 BOOL fDisplayChangeQueried = DeviceIoControl(gVBoxDriver, VBOXGUEST_IOCTL_VMMREQUEST(sizeof(VMMDevDisplayChangeRequest2)), &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest2), 564 &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest2), &cbReturned, NULL); 565 if (!fDisplayChangeQueried) 566 { 567 /* Try the old version of the request for old VBox hosts. */ 568 displayChangeRequest.header.size = sizeof(VMMDevDisplayChangeRequest); 569 displayChangeRequest.header.version = VMMDEV_REQUEST_HEADER_VERSION; 570 displayChangeRequest.header.requestType = VMMDevReq_GetDisplayChangeRequest; 571 displayChangeRequest.eventAck = VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; 572 fDisplayChangeQueried = DeviceIoControl(gVBoxDriver, VBOXGUEST_IOCTL_VMMREQUEST(sizeof(VMMDevDisplayChangeRequest)), &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest), 573 &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest), &cbReturned, NULL); 574 displayChangeRequest.display = 0; 575 } 576 577 if (fDisplayChangeQueried) 569 fDisplayChangeQueried = DeviceIoControl(gVBoxDriver, VBOXGUEST_IOCTL_VMMREQUEST(sizeof(VMMDevDisplayChangeRequest)), &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest), 570 &displayChangeRequest, sizeof(VMMDevDisplayChangeRequest), &cbReturned, NULL); 571 displayChangeRequest.display = 0; 572 } 573 574 if (fDisplayChangeQueried) 575 { 576 /* Try to set the requested video mode. Repeat until it is successful or is rejected by the driver. */ 577 for (;;) 578 578 { 579 579 Log(("VBoxTray: VBoxDisplayThread: VMMDevReq_GetDisplayChangeRequest2: %dx%dx%d at %d\n", displayChangeRequest.xres, displayChangeRequest.yres, displayChangeRequest.bpp, displayChangeRequest.display)); … … 708 708 } 709 709 } 710 else 710 } 711 else 712 { 713 Log(("VBoxTray: VBoxDisplayThread: error from DeviceIoControl VBOXGUEST_IOCTL_VMMREQUEST\n")); 714 /* sleep a bit to not eat too much CPU while retrying */ 715 /* are we supposed to stop? */ 716 if (WaitForSingleObject(pCtx->pEnv->hStopEvent, 50) == WAIT_OBJECT_0) 711 717 { 712 Log(("VBoxTray: VBoxDisplayThread: error from DeviceIoControl VBOXGUEST_IOCTL_VMMREQUEST\n")); 713 /* sleep a bit to not eat too much CPU while retrying */ 714 /* are we supposed to stop? */ 715 if (WaitForSingleObject(pCtx->pEnv->hStopEvent, 50) == WAIT_OBJECT_0) 716 { 717 fTerminate = true; 718 break; 719 } 718 fTerminate = true; 719 break; 720 720 } 721 721 }
Note:
See TracChangeset
for help on using the changeset viewer.