Changeset 46896 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Jul 2, 2013 8:16:43 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 86884
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/common/xpdm/VBoxVideoIOCTL.h
r36867 r46896 58 58 #define IOCTL_VIDEO_VHWA_QUERY_INFO \ 59 59 CTL_CODE(FILE_DEVICE_VIDEO, 0x435, METHOD_BUFFERED, FILE_ANY_ACCESS) 60 61 /* Called to get adapter's generic information */ 62 #define IOCTL_VIDEO_QUERY_VBOXVIDEO_INFO \ 63 CTL_CODE(FILE_DEVICE_VIDEO, 0x436, METHOD_BUFFERED, FILE_ANY_ACCESS) 60 64 61 65 /* ==================== Data structures used by Virtual Box VRPS's ==================== */ … … 147 151 #pragma pack() 148 152 153 /* IOCTL_VIDEO_QUERY_INFO */ 154 #define VBOXVIDEO_INFO_LEVEL_REGISTRY_FLAGS 1 155 156 #define VBOXVIDEO_REGISTRY_FLAGS_DISABLE_BITMAP_CACHE 0x00000001 157 149 158 #endif /*VBOXVIDEOIOCTL_H*/ -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDisp.h
r44529 r46896 135 135 VBOXDISPVHWAINFO vhwa; /* VHWA Info */ 136 136 #endif 137 138 BOOL bBitmapCacheDisabled; 137 139 } VBOXDISPDEV, *PVBOXDISPDEV; 138 140 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispDriver.cpp
r44529 r46896 519 519 pDev->hDriver = hDriver; 520 520 521 ULONG ulRegistryFlags = 0; 522 rc = VBoxDispMPQueryRegistryFlags(hDriver, &ulRegistryFlags); 523 if (RT_SUCCESS(rc)) 524 { 525 pDev->bBitmapCacheDisabled = (ulRegistryFlags & VBOXVIDEO_REGISTRY_FLAGS_DISABLE_BITMAP_CACHE) != 0; 526 LOG(("Bitmap cache %s", pDev->bBitmapCacheDisabled? "disabled": "enabled")); 527 } 528 521 529 /* Initialize device structure and query miniport to fill device and gdi infos */ 522 530 rc = VBoxDispInitDevice(pDev, pdm, &gdiInfo, &devInfo); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispMini.cpp
r37423 r46896 407 407 return VINF_SUCCESS; 408 408 } 409 410 int VBoxDispMPQueryRegistryFlags(HANDLE hDriver, ULONG *pulFlags) 411 { 412 DWORD dwrc; 413 ULONG cbReturned; 414 ULONG ulInfoLevel; 415 LOGF_ENTER(); 416 417 *pulFlags = 0; 418 ulInfoLevel = VBOXVIDEO_INFO_LEVEL_REGISTRY_FLAGS; 419 dwrc = EngDeviceIoControl(hDriver, IOCTL_VIDEO_QUERY_VBOXVIDEO_INFO, &ulInfoLevel, sizeof(DWORD), 420 pulFlags, sizeof(DWORD), &cbReturned); 421 VBOX_CHECK_WINERR_RETRC(dwrc, VERR_DEV_IO_ERROR); 422 VBOX_WARN_IOCTLCB_RETRC("IOCTL_VIDEO_QUERY_INFO", cbReturned, sizeof(DWORD), VERR_DEV_IO_ERROR); 423 424 if (*pulFlags != 0) 425 LogRel(("VBoxDisp: video flags 0x%08X\n", *pulFlags)); 426 427 LOGF_LEAVE(); 428 return VINF_SUCCESS; 429 } -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispMini.h
r36867 r46896 39 39 int VBoxDispMPShareVideoMemory(HANDLE hDriver, PVIDEO_SHARE_MEMORY pSMem, PVIDEO_SHARE_MEMORY_INFORMATION pSMemInfo); 40 40 int VBoxDispMPUnshareVideoMemory(HANDLE hDriver, PVIDEO_SHARE_MEMORY pSMem); 41 int VBoxDispMPQueryRegistryFlags(HANDLE hDriver, ULONG *pulFlags); 41 42 42 43 #endif /*VBOXDISPMINI_H*/ -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispVRDP.cpp
r45768 r46896 1462 1462 1463 1463 LOG(("MEMBLT: bitmap %dx%d.", psoSrc->sizlBitmap.cx, psoSrc->sizlBitmap.cy)); 1464 if ( (psoSrc->fjBitmap & BMF_DONTCACHE) != 0 1464 if ( pDev->bBitmapCacheDisabled 1465 || (psoSrc->fjBitmap & BMF_DONTCACHE) != 0 1465 1466 || psoSrc->iUniq == 0 1466 1467 /* Bitmaps with hdev == 0 seems to have different RGB layout for 16BPP modes. -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPDriver.cpp
r45037 r46896 546 546 } 547 547 548 case IOCTL_VIDEO_QUERY_VBOXVIDEO_INFO: 549 { 550 STARTIO_IN(ULONG, pulInfoLevel); 551 if (*pulInfoLevel == VBOXVIDEO_INFO_LEVEL_REGISTRY_FLAGS) 552 { 553 STARTIO_OUT(ULONG, pulFlags); 554 bResult = VBoxMPQueryRegistryFlags(pExt, pulFlags, pStatus); 555 } 556 else 557 { 558 pStatus->Status = ERROR_INVALID_PARAMETER; 559 bResult = FALSE; 560 } 561 562 break; 563 } 564 548 565 default: 549 566 { -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPIOCTL.cpp
r45037 r46896 617 617 } 618 618 #endif 619 620 BOOLEAN VBoxMPQueryRegistryFlags(PVBOXMP_DEVEXT pExt, ULONG *pulFlags, PSTATUS_BLOCK pStatus) 621 { 622 BOOLEAN bRC = TRUE; 623 LOGF_ENTER(); 624 625 VBOXMPCMNREGISTRY Registry; 626 627 int rc = VBoxMPCmnRegInit(pExt, &Registry); 628 VBOXMP_WARN_VPS_NOBP(rc); 629 630 if (rc == NO_ERROR) 631 { 632 uint32_t u32Flags = 0; 633 rc = VBoxMPCmnRegQueryDword(Registry, L"VBoxVideoFlags", &u32Flags); 634 VBOXMP_WARN_VPS_NOBP(rc); 635 if (rc != NO_ERROR) 636 { 637 u32Flags = 0; 638 } 639 640 LOG(("Registry flags 0x%08X", u32Flags)); 641 *pulFlags = u32Flags; 642 pStatus->Information = sizeof(ULONG); 643 } 644 645 rc = VBoxMPCmnRegFini(Registry); 646 VBOXMP_WARN_VPS_NOBP(rc); 647 648 LOGF_LEAVE(); 649 return bRC; 650 } -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPInternal.h
r36867 r46896 62 62 BOOLEAN VBoxMPHgsmiHandlerEnable(PVBOXMP_DEVEXT pExt, HGSMIHANDLERENABLE *pChannel, PSTATUS_BLOCK pStatus); 63 63 BOOLEAN VBoxMPVhwaQueryInfo(PVBOXMP_DEVEXT pExt, VHWAQUERYINFO *pInfo, PSTATUS_BLOCK pStatus); 64 BOOLEAN VBoxMPQueryRegistryFlags(PVBOXMP_DEVEXT pExt, ULONG *pulFlags, PSTATUS_BLOCK pStatus); 64 65 65 66 #endif /*VBOXMPINTERNAL_H*/
Note:
See TracChangeset
for help on using the changeset viewer.