private void ProcessNcaFile(string ncaPath)
        {
            FsClient.OpenFile(out FileHandle ncaHandle, ncaPath, OpenMode.Read).ThrowIfFailure();

            using (var ncaStorage = new FileHandleStorage(ncaHandle, true))
            {
                Nca nca = OpenNca(ncaStorage);

                ProcessNca(nca);
            }
        }
        private void ProcessNsp(string nspPath)
        {
            FsClient.OpenFile(out FileHandle nspHandle, nspPath, OpenMode.Read).ThrowIfFailure();

            using (var nspStorage = new FileHandleStorage(nspHandle, true))
            {
                var pfs = new PartitionFileSystemCore <StandardEntry>();
                pfs.Initialize(nspStorage).ThrowIfFailure();

                ProcessNcaFs(pfs);
            }
        }
        private void ProcessNso(string nsoPath)
        {
            FsClient.OpenFile(out FileHandle nsoHandle, nsoPath, OpenMode.Read).ThrowIfFailure();

            using (nsoHandle)
                using (var nsoStorage = new FileHandleStorage(nsoHandle, true))
                    using (var nsoFile = new StorageFile(nsoStorage, OpenMode.Read))
                    {
                        var     nso  = new Nso(nsoStorage);
                        NsoInfo info = GetNsoInfo((nso, nsoFile));

                        ParseNsoName(nsoPath, info);
                    }
        }
        private void ProcessXci(string xciPath)
        {
            FsClient.OpenFile(out FileHandle xciHandle, xciPath, OpenMode.Read).ThrowIfFailure();

            using (var xciStorage = new FileHandleStorage(xciHandle, true))
            {
                var xci = new Xci(Keyset, xciStorage);

                if (!xci.HasPartition(XciPartitionType.Secure))
                {
                    return;
                }

                IFileSystem secureFs = xci.OpenPartition(XciPartitionType.Secure);
                ProcessNcaFs(secureFs);
            }
        }