Changeset 78543 in vbox
- Timestamp:
- May 16, 2019 11:35:40 AM (6 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/SharedFolders/driver
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/SharedFolders/driver/info.cpp
r78541 r78543 531 531 /** 532 532 * Updates VBSFNTFCBEXT::VolInfo. 533 * 534 * Currently no kind of FCB lock is normally held. 533 535 */ 534 536 static NTSTATUS vbsfNtUpdateFcbVolInfo(PVBSFNTFCBEXT pVBoxFcbX, PMRX_VBOX_NETROOT_EXTENSION pNetRootExtension, … … 1118 1120 return Status; 1119 1121 } 1122 1123 1124 /********************************************************************************************************************************* 1125 * VBoxMRxQueryFileInfo * 1126 *********************************************************************************************************************************/ 1120 1127 1121 1128 /** … … 1643 1650 return Status; 1644 1651 } 1652 1653 1654 /********************************************************************************************************************************* 1655 * VBoxMRxSetFileInfo * 1656 *********************************************************************************************************************************/ 1645 1657 1646 1658 /** … … 2256 2268 } 2257 2269 2270 /** 2271 * This is a no-op because we already set the file timestamps before closing, 2272 * and generally the host takes care of this. 2273 * 2274 * RDBSS calls this if it things we might need to update file information as the 2275 * file is closed. 2276 */ 2258 2277 NTSTATUS VBoxMRxSetFileInfoAtCleanup(IN PRX_CONTEXT RxContext) 2259 2278 { -
trunk/src/VBox/Additions/WINNT/SharedFolders/driver/path.cpp
r78468 r78543 471 471 NTSTATUS VBoxMRxCreate(IN OUT PRX_CONTEXT RxContext) 472 472 { 473 NTSTATUS Status = STATUS_SUCCESS;474 475 473 RxCaptureFcb; 476 474 RxCaptureFobx; 477 478 PMRX_NET_ROOT pNetRoot = capFcb->pNetRoot; 479 PMRX_SRV_OPEN SrvOpen = RxContext->pRelevantSrvOpen; 480 PUNICODE_STRING RemainingName = GET_ALREADY_PREFIXED_NAME_FROM_CONTEXT(RxContext); 481 482 SHFLFSOBJINFO Info = {0}; 483 484 ULONG CreateAction = FILE_CREATED; 485 SHFLHANDLE Handle = SHFL_HANDLE_NIL; 486 PMRX_VBOX_FOBX pVBoxFobx; 487 488 RT_NOREF(__C_Fobx); /* RxCaptureFobx */ 475 PMRX_NET_ROOT pNetRoot = capFcb->pNetRoot; 476 PMRX_SRV_OPEN SrvOpen = RxContext->pRelevantSrvOpen; 477 PUNICODE_STRING RemainingName = GET_ALREADY_PREFIXED_NAME_FROM_CONTEXT(RxContext); 478 PMRX_VBOX_NETROOT_EXTENSION pNetRootExtension = VBoxMRxGetNetRootExtension(capFcb->pNetRoot); 479 ULONG CreateAction = FILE_CREATED; 480 SHFLHANDLE Handle = SHFL_HANDLE_NIL; 481 SHFLFSOBJINFO Info = {0}; 482 NTSTATUS Status = STATUS_SUCCESS; 483 PMRX_VBOX_FOBX pVBoxFobx; 484 485 RT_NOREF(capFobx); /* RxCaptureFobx */ 489 486 490 487 Log(("VBOXSF: MRxCreate: name ptr %p length=%d, SrvOpen->Flags 0x%08X\n", … … 499 496 500 497 if (RemainingName->Length) 501 {502 498 Log(("VBOXSF: MRxCreate: Attempt to open %.*ls\n", 503 499 RemainingName->Length/sizeof(WCHAR), RemainingName->Buffer)); 504 } 505 else 506 { 507 if (FlagOn(RxContext->Create.Flags, RX_CONTEXT_CREATE_FLAG_STRIPPED_TRAILING_BACKSLASH)) 508 { 509 Log(("VBOXSF: MRxCreate: Empty name -> Only backslash used\n")); 510 RemainingName = &g_UnicodeBackslash; 511 } 500 else if (FlagOn(RxContext->Create.Flags, RX_CONTEXT_CREATE_FLAG_STRIPPED_TRAILING_BACKSLASH)) 501 { 502 Log(("VBOXSF: MRxCreate: Empty name -> Only backslash used\n")); 503 RemainingName = &g_UnicodeBackslash; 512 504 } 513 505 … … 517 509 Log(("VBOXSF: MRxCreate: netroot type %d not supported\n", 518 510 pNetRoot->Type)); 519 Status = STATUS_NOT_IMPLEMENTED; 520 goto Exit; 511 return STATUS_NOT_IMPLEMENTED; 521 512 } 522 513 … … 533 524 Log(("VBOXSF: MRxCreate: vbsfProcessCreate failed 0x%08X\n", 534 525 Status)); 535 goto Exit;526 return Status; 536 527 } 537 528 … … 543 534 { 544 535 Log(("VBOXSF: MRxCreate: RxCreateNetFobx failed\n")); 545 Status = STATUS_INSUFFICIENT_RESOURCES; 546 goto Exit; 547 } 536 VbglR0SfHostReqCloseSimple(pNetRootExtension->map.root, Handle); 537 return STATUS_INSUFFICIENT_RESOURCES; 538 } 539 pVBoxFobx = VBoxMRxGetFileObjectExtension(RxContext->pFobx); 540 Log(("VBOXSF: MRxCreate: VBoxFobx = %p\n", 541 pVBoxFobx)); 542 AssertReturnStmt(pVBoxFobx, VbglR0SfHostReqCloseSimple(pNetRootExtension->map.root, Handle), STATUS_INTERNAL_ERROR); 543 548 544 549 545 Log(("VBOXSF: MRxCreate: CreateAction = 0x%08X\n", … … 595 591 RxContext->pFobx->OffsetOfNextEaToReturn = 1; 596 592 597 pVBoxFobx = VBoxMRxGetFileObjectExtension(RxContext->pFobx);598 599 Log(("VBOXSF: MRxCreate: VBoxFobx = %p\n",600 pVBoxFobx));601 602 if (!pVBoxFobx)603 {604 Log(("VBOXSF: MRxCreate: no VBoxFobx!\n"));605 AssertFailed();606 Status = STATUS_INSUFFICIENT_RESOURCES;607 goto Exit;608 }609 610 593 pVBoxFobx->hFile = Handle; 611 594 pVBoxFobx->pSrvCall = RxContext->Create.pSrvCall; … … 643 626 Status)); 644 627 645 Exit:646 628 return Status; 647 629 }
Note:
See TracChangeset
for help on using the changeset viewer.