VirtualBox

Changeset 78473 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 12, 2019 8:57:16 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
130508
Message:

winnt/vboxsf: Dropped NtQueryVolumeInformationFile / FileFsLabelInformation as that class is only for setting, not for querying (rejected in NtQueryVolumeInformationFile). bugref:9172

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/SharedFolders/driver/info.cpp

    r78471 r78473  
    703703
    704704        case FileFsLabelInformation:
    705         {
    706             PFILE_FS_LABEL_INFORMATION pInfo = (PFILE_FS_LABEL_INFORMATION)pInfoBuffer;
    707 
    708             PMRX_NET_ROOT pNetRoot = capFcb->pNetRoot;
    709             PMRX_SRV_CALL pSrvCall = pNetRoot->pSrvCall;
    710 
    711             PWCHAR pRootName;
    712             ULONG cbRootName;
    713 
    714             Log(("VBOXSF: MrxQueryVolumeInfo: FileFsLabelInformation\n"));
    715 
    716             cbRootName = pNetRoot->pNetRootName->Length - pSrvCall->pSrvCallName->Length;
    717             cbRootName -= sizeof(WCHAR); /* Remove the leading backslash. */
    718             pRootName = pNetRoot->pNetRootName->Buffer + (pSrvCall->pSrvCallName->Length / sizeof(WCHAR));
    719             pRootName++; /* Remove the leading backslash. */
    720 
    721             Log(("VBOXSF: MrxQueryVolumeInfo: FileFsLabelInformation: Root name = %.*ls, %d bytes\n",
    722                  cbRootName / sizeof(WCHAR), pRootName, cbRootName));
    723 
    724             cbToCopy = FIELD_OFFSET(FILE_FS_LABEL_INFORMATION, VolumeLabel);
    725 
    726             cbString  = VBOX_VOLNAME_PREFIX_SIZE;
    727             cbString += cbRootName;
    728             cbString += sizeof(WCHAR);
    729 
    730             if (cbInfoBuffer < cbToCopy)
    731             {
    732                 Status = STATUS_BUFFER_TOO_SMALL;
    733                 break;
    734             }
    735 
    736             RtlZeroMemory(pInfo, cbToCopy);
    737 
    738             if (cbInfoBuffer >= cbToCopy + cbString)
    739             {
    740                 RtlCopyMemory(&pInfo->VolumeLabel[0],
    741                               VBOX_VOLNAME_PREFIX,
    742                               VBOX_VOLNAME_PREFIX_SIZE);
    743                 RtlCopyMemory(&pInfo->VolumeLabel[VBOX_VOLNAME_PREFIX_SIZE / sizeof(WCHAR)],
    744                               pRootName,
    745                               cbRootName);
    746                 pInfo->VolumeLabel[cbString / sizeof(WCHAR) -  1] = 0;
    747             }
    748             else
    749             {
    750                 cbString = cbInfoBuffer - cbToCopy;
    751 
    752                 RtlCopyMemory(&pInfo->VolumeLabel[0],
    753                               VBOX_VOLNAME_PREFIX,
    754                               RT_MIN(cbString, VBOX_VOLNAME_PREFIX_SIZE));
    755                 if (cbString > VBOX_VOLNAME_PREFIX_SIZE)
    756                 {
    757                     RtlCopyMemory(&pInfo->VolumeLabel[VBOX_VOLNAME_PREFIX_SIZE / sizeof(WCHAR)],
    758                                   pRootName,
    759                                   cbString - VBOX_VOLNAME_PREFIX_SIZE);
    760                 }
    761             }
    762 
    763             pInfo->VolumeLabelLength = cbString;
    764 
    765             cbToCopy += cbString;
    766 
    767             Log(("VBOXSF: MrxQueryVolumeInfo: FileFsLabelInformation: VolumeLabelLength %d\n",
    768                  pInfo->VolumeLabelLength));
    769 
    770             Status = STATUS_SUCCESS;
    771             break;
    772         }
     705            AssertFailed(/* Only for setting, not for querying. */);
     706            Status = STATUS_INVALID_INFO_CLASS;
     707            break;
    773708
    774709        case FileFsFullSizeInformation:
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette