public NtStatus GetVolumeInformationProxy(StringBuilder rawVolumeNameBuffer, uint rawVolumeNameSize,
                                                  ref uint rawVolumeSerialNumber, ref uint rawMaximumComponentLength, ref FileSystemFeatures rawFileSystemFlags,
                                                  StringBuilder rawFileSystemNameBuffer, uint rawFileSystemNameSize,
                                                  DokanFileInfo rawFileInfo)
        {
            rawMaximumComponentLength = 256;
            rawVolumeSerialNumber     = serialNumber;
            string label;
            string name;

            try
            {
                Trace("\nGetVolumeInformationProxy");
                Trace("\tContext\t" + ToTrace(rawFileInfo));
                NtStatus result = operations.GetVolumeInformation(out label, out rawFileSystemFlags, out name, rawFileInfo);

                if (result == DokanResult.Success)
                {
                    Debug.Assert(!String.IsNullOrEmpty(name));
                    Debug.Assert(!String.IsNullOrEmpty(label));
                    rawVolumeNameBuffer.Append(label);
                    rawFileSystemNameBuffer.Append(name);

                    Trace("\tVolumeNameBuffer\t" + rawVolumeNameBuffer);
                    Trace("\tFileSystemNameBuffer\t" + rawFileSystemNameBuffer);
                    Trace("\tVolumeSerialNumber\t" + rawVolumeSerialNumber);
                    Trace("\tFileSystemFlags\t" + rawFileSystemFlags);
                }

                Trace("GetVolumeInformationProxy Return : " + result);
                return(result);
            }
#pragma warning disable 0168
            catch (Exception ex)
#pragma warning restore 0168
            {
                Trace("GetVolumeInformationProxy Throw : " + ex.Message);
                return(DokanResult.InvalidParameter);
            }
        }
Beispiel #2
0
        public NtStatus GetVolumeInformationProxy(StringBuilder rawVolumeNameBuffer, uint rawVolumeNameSize,
                                                  ref uint rawVolumeSerialNumber, ref uint rawMaximumComponentLength,
                                                  ref FileSystemFeatures rawFileSystemFlags,
                                                  StringBuilder rawFileSystemNameBuffer, uint rawFileSystemNameSize,
                                                  DokanFileInfo rawFileInfo)
        {
            rawMaximumComponentLength = 256;
            rawVolumeSerialNumber     = serialNumber;
            try
            {
                logger.Debug("GetVolumeInformationProxy:");
                logger.Debug("\tContext\t{0}", rawFileInfo);
                string label;
                string name;
                var    result = operations.GetVolumeInformation(out label, out rawFileSystemFlags, out name, rawFileInfo);

                if (result == DokanResult.Success)
                {
                    Debug.Assert(!string.IsNullOrEmpty(name));
                    Debug.Assert(!string.IsNullOrEmpty(label));
                    rawVolumeNameBuffer.Append(label);
                    rawFileSystemNameBuffer.Append(name);

                    logger.Debug("\tVolumeNameBuffer\t{0}", rawVolumeNameBuffer);
                    logger.Debug("\tFileSystemNameBuffer\t{0}", rawFileSystemNameBuffer);
                    logger.Debug("\tVolumeSerialNumber\t{0}", rawVolumeSerialNumber);
                    logger.Debug("\tFileSystemFlags\t{0}", rawFileSystemFlags);
                }

                logger.Debug("GetVolumeInformationProxy Return : {0}", result);
                return(result);
            }
            catch (Exception ex)
            {
                logger.Error("GetVolumeInformationProxy Throw : {0}", ex.Message);
                return(DokanResult.InvalidParameter);
            }
        }
Beispiel #3
0
        public int GetVolumeInformationProxy(StringBuilder rawVolumeNameBuffer,
                                             uint rawVolumeNameSize,
                                             ref uint rawVolumeSerialNumber,
                                             ref uint rawMaximumComponentLength, ref FileSystemFeatures rawFileSystemFlags,
                                             StringBuilder rawFileSystemNameBuffer,
                                             uint rawFileSystemNameSize,
                                             DokanFileInfo fileInfo)
        {
            rawMaximumComponentLength = 256;
            rawVolumeSerialNumber     = _serialNumber;
            string label;
            string name;

            try
            {
                int ret = (int)_operations.GetVolumeInformation(out label,
                                                                out rawFileSystemFlags, out name,
                                                                fileInfo);

                if (ret == ERROR_SUCCESS)
                {
                    Debug.Assert(!String.IsNullOrEmpty(name));
                    Debug.Assert(!String.IsNullOrEmpty(label));
                    rawVolumeNameBuffer.Append(label);
                    rawFileSystemNameBuffer.Append(name);
                }
                return(ret);
            }
            catch
            {
#if DEBUGDOKAN
                Log("GetVolumeInformationProxy: {0}\n", rawVolumeNameBuffer);
                //throw;
#endif
                return(ERROR_INVALID_FUNCTION);
            }
        }
Beispiel #4
0
        ////

        internal NtStatus GetVolumeInformationProxy(StringBuilder rawVolumeNameBuffer, uint rawVolumeNameSize, ref uint rawVolumeSerialNumber, ref uint rawMaximumComponentLength, ref FileSystemFeatures rawFileSystemFlags, StringBuilder rawFileSystemNameBuffer, uint rawFileSystemNameSize, DokanFileInfo rawFileInfo)
        {
            rawMaximumComponentLength = 256;
            rawVolumeSerialNumber     = _serialNumber;
            string label;
            string name;

            try
            {
                NtStatus result = _operations.GetVolumeInformation(out label, out rawFileSystemFlags, out name, rawFileInfo);

                if (result == DokanResult.Success)
                {
                    rawVolumeNameBuffer.Append(label);
                    rawFileSystemNameBuffer.Append(name);
                }
                return(result);
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Warn("Dokan exception: ", ex);
                return(DokanResult.InvalidParameter);
            }
        }
Beispiel #5
0
 public NtStatus GetVolumeInformation(out string volumeLabel, out FileSystemFeatures features, out string fileSystemName, DokanFileInfo info)
 {
     return(ope_.GetVolumeInformation(out volumeLabel, out features, out fileSystemName, info));
 }
Beispiel #6
0
 public NtStatus GetVolumeInformation(out string volumeLabel, out FileSystemFeatures features, out string fileSystemName, out uint maximumComponentLength, DokanFileInfo info)
 {
     return(ope_.GetVolumeInformation(out volumeLabel, out features, out fileSystemName, out maximumComponentLength, info));
 }