- Timestamp:
- Mar 6, 2009 3:19:22 PM (16 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/VBoxGuest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxGuest/VBoxGuest.cpp
r17163 r17480 67 67 static NTSTATUS VBoxGuestShutdown(PDEVICE_OBJECT pDevObj, PIRP pIrp); 68 68 static NTSTATUS VBoxGuestNotSupportedStub(PDEVICE_OBJECT pDevObj, PIRP pIrp); 69 static VOID VBoxGuestBugCheckCallback(PVOID pszBuffer, ULONG ulLength); 69 70 static VOID vboxWorkerThread(PVOID context); 70 71 static VOID reserveHypervisorMemory(PVBOXGUESTDEVEXT pDevExt); … … 241 242 #endif 242 243 243 // driver is ready now 244 /* 245 * Setup bugcheck callback routine ASAP. 246 */ 247 RtlZeroMemory (pDevExt->szDriverName, sizeof(pDevExt->szDriverName)); 248 KeInitializeCallbackRecord(&pDevExt->bugcheckRecord); 249 250 if (FALSE == KeRegisterBugCheckCallback(&pDevExt->bugcheckRecord, 251 &VBoxGuestBugCheckCallback, 252 pDevExt->pcBugcheckBuffer, 253 sizeof(&pDevExt->szDriverName), 254 pDevExt->szDriverName)) 255 { 256 dprintf(("VBoxGuest::VBoxGuestAddDevice: Could not register bugcheck callback routine!\n")); 257 } 258 else 259 { 260 dprintf(("VBoxGuest::VBoxGuestAddDevice: Bugcheck callback registered.\n")); 261 } 262 263 /* Driver is ready now. */ 244 264 deviceObject->Flags &= ~DO_DEVICE_INITIALIZING; 245 265 … … 282 302 283 303 VBoxCleanupMemBalloon(pDevExt); 304 305 /* Unregister bugcheck callback. */ 306 if (FALSE == KeDeregisterBugCheckCallback(&pDevExt->bugcheckRecord)) 307 dprintf(("VBoxGuest::VBoxGuestUnload: Unregistering bugcheck callback routine failed!\n")); 284 308 285 309 /* … … 295 319 RTSpinlockDestroy(pDevExt->SessionSpinlock); 296 320 #endif 297 298 321 IoDeleteDevice(pDrvObj->DeviceObject); 299 322 #endif 323 300 324 dprintf(("VBoxGuest::VBoxGuestUnload: returning\n")); 301 325 } … … 1510 1534 } 1511 1535 1536 VOID VBoxGuestBugCheckCallback(PVOID pszBuffer, ULONG ulLength) 1537 { 1538 LogRelBackdoor(("Windows bluescreen detected! ")); 1539 if (pszBuffer) 1540 { 1541 LogRelBackdoor(("Additional information: %s\n", (char*)pszBuffer)); 1542 } 1543 else LogRelBackdoor(("No additional information given.\n")); 1544 1545 /* @todo Notify the host somehow over DevVMM. */ 1546 } 1547 1512 1548 /** 1513 1549 * Worker thread to do periodic things such as notify other -
trunk/src/VBox/Additions/WINNT/VBoxGuest/VBoxGuest_Internal.h
r17165 r17480 156 156 ///// 157 157 158 158 // the driver name 159 UCHAR szDriverName[32]; 159 160 // our functional driver object 160 161 PDEVICE_OBJECT deviceObject; … … 215 216 VMMDevPowerStateRequest *powerStateRequest; 216 217 218 /* Record for bugcheck callback routine. */ 219 KBUGCHECK_CALLBACK_RECORD bugcheckRecord; 220 CHAR* pcBugcheckBuffer; 221 217 222 } VBOXGUESTDEVEXT, *PVBOXGUESTDEVEXT; 218 223
Note:
See TracChangeset
for help on using the changeset viewer.