Changeset 31979 in vbox for trunk/src/VBox/Additions/WINNT/Graphics
- Timestamp:
- Aug 26, 2010 10:05:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
r31873 r31979 1450 1450 } 1451 1451 1452 /* Unmapping adapter information must be done carefully WRT the interrupt handler. */1453 1452 BOOLEAN VBoxUnmapAdpInfoCallback(PVOID ext) 1454 1453 { 1455 1454 PDEVICE_EXTENSION PrimaryExtension = (PDEVICE_EXTENSION)ext; 1455 Assert(PrimaryExtension); 1456 1457 PrimaryExtension->u.primary.pHostFlags = NULL; 1458 return TRUE; 1459 } 1460 1461 void VBoxUnmapAdapterInformation(PDEVICE_EXTENSION PrimaryExtension) 1462 { 1456 1463 void *ppv; 1464 1465 dprintf(("VBoxVideo::VBoxUnmapAdapterInformation\n")); 1457 1466 1458 1467 ppv = PrimaryExtension->u.primary.pvAdapterInformation; 1459 1468 if (ppv) 1460 1469 { 1470 /* The pHostFlags field is mapped through pvAdapterInformation. It must be cleared first, 1471 * and it must be done in a way which avoids races with the interrupt handler. 1472 */ 1473 VideoPortSynchronizeExecution(PrimaryExtension, VpMediumPriority, 1474 VBoxUnmapAdpInfoCallback, PrimaryExtension); 1461 1475 #ifndef VBOXWDDM 1462 1476 VideoPortUnmapMemory(PrimaryExtension, ppv, NULL); … … 1467 1481 #endif 1468 1482 PrimaryExtension->u.primary.pvAdapterInformation = NULL; 1469 PrimaryExtension->u.primary.pHostFlags = NULL; /* Mapped through pvAdapterInformation */ 1470 } 1471 return TRUE; 1472 } 1473 1474 void VBoxUnmapAdapterInformation(PDEVICE_EXTENSION PrimaryExtension) 1475 { 1476 dprintf(("VBoxVideo::VBoxUnmapAdapterInformation\n")); 1477 1478 VideoPortSynchronizeExecution(PrimaryExtension, VpMediumPriority, 1479 VBoxUnmapAdpInfoCallback, PrimaryExtension); 1483 } 1480 1484 } 1481 1485
Note:
See TracChangeset
for help on using the changeset viewer.