jjzjj

windows - 修改NTFS主文件表(MFT)中的文件记录失败

我正在编写一个程序来删除WindowsNTFS卷中的文件和所有相关属性(包括0x30$FILE_NAME、0x80$DATA、0x90$INDEX_ROOT和0xA0$INDEX_ALLOCATION等)。我现在可以找到任何文件的文件记录位置。我会多次覆盖文件记录以防止恢复,然后我放回文件记录的基本信息(即第一个属性“0x10$STANDARD_INFORMATION”的标准属性头)。我用了WriteFile()写入文件记录,返回值表示函数成功。之后,用WinHex打开磁盘查看原始数据,可以看到FileRecordactuallyISmodified。但问题是,我又删除了两三个文件后,

c - 是否可以在 Windows api 中覆盖 MFT 文件表?

是否可以在WindowsAPI中覆盖MFT文件表。Windows何时启动并准备就绪?我知道我们可以读MFT,但我问的是写。 最佳答案 Vista限制原始访问,但如果您先卸载该卷,您可能仍然可以这样做。ChangestothefilesystemandtothestoragestacktorestrictdirectdiskaccessanddirectvolumeaccessinWindowsVistaandinWindowsServer2008.我不知道您正在编写的程序类型,但它可能属于此类:Backupprogramsmustu

windows - 如何使用 Java 或 C++ 获取文件 MFT 条目/inode

我已经用Java编写了一个重复查找器,但我需要为它包含硬链接(hardlink)支持。不幸的是,似乎没有办法在Java中挖掘出文件的MFT条目。虽然在BasicFileAttributeView类中有一个名为fileKey()的方法,但它不适用于NTFS文件系统(我还没有在ext上测试过)。我还找到了方法isSameFile()(在java.nio.file.Path中)。有谁知道这种方法是如何工作的?它似乎在做正确的事情,但它返回一个bool值,所以它对我来说毫无值(value)(我希望将结果放入map中并按它们的MFT条目对它们进行分组)。我总是可以比较每个文件的创建时间、修改时间

windows - 如何在 Windows 中使用 H264 视频编码器 MFT 对位图进行编码

我的应用程序对从GDI或DXGI方法捕获的帧进行编码。目前我正在使用x264库进行编码。AFAIKx264是基于软件的库,我想借助GPU进行编码,这样可以节省CPU周期并希望速度也会更快。经过搜索,我找到了一个H.264VideoEncoder正在做h264编码的MFT。但是我回答了几个问题。1)它比x264编码库快吗?2)位图帧可以用这个MFT编码吗?-我只看到支持MFVideoFormat_I420、MFVideoFormat_IYUV、MFVideoFormat_NV12、MFVideoFormat_YUY2、MFVideoFormat_YV12这些格式3)它是硬件加速的吗(指它

windows - 有没有办法从 NTFS 卷的 MFT 获取文件名/位置信息?

我需要获取驱动器上所有文件的列表。我正在使用递归解决方案。但这需要很多时间。我想知道,是否可以从主文件表中获取NTFS驱动器上所有文件的名称和位置?我认为它会非常快。有什么建议吗? 最佳答案 有一个工具可以直接搜索mft,它叫ndff。我以前用过,速度非常快。大概可以做你想做的事——还有另一个工具叫做“Everything”,我猜它做同样的事情——它也使用USN更改日志来更新它的索引。 关于windows-有没有办法从NTFS卷的MFT获取文件名/位置信息?,我们在StackOverfl

c# - 我们如何通过C#访问MFT

我需要在我的.net应用程序中使用C#访问WindowsMFT(主文件表)。我已经用谷歌搜索了这个,但找不到任何好的结果。我一直在搜索过去2天的信息,但找不到任何相关信息。我不是在寻找精确的代码来做同样的事情,我只是在寻找一些可以让我开始的信息。我唯一能弄清楚的是我必须使用P/Invoke。我想知道我将用来访问MFT的功能。如果您能够提供一些代码示例,那就太好了。 最佳答案 首先,您必须拥有并声明足够的权限才能访问MFT-这本身就是一种痛苦。然后,您必须获得卷上文件/文件夹的句柄-对于最后一步中的调用......这是在循环中调用Wi

c++ - 使用 DirectX 视频加速 (DXVA) 实现媒体基础转换 (MFT)

目的是为视频处理和与外部应用程序的同步实现自定义MFT。的细节并不重要。作为第一步,我想要实现的是使用DXVA视频处理或DXVA-HD启动并运行MFT。我做不到。这是我所做的:我开始使用源输入节点(我的网络摄像头)、MFT(MFT_Grayscale示例)和EVR构建拓扑。我将其包含在一个小应用程序中。拓扑有效,我可以看到来自相机的单色流。现在我想更改MF_Grayscale示例的代码,使其支持DXVA视频处理并可以使用VideoProcessBlt方法提供的硬件加速。Microsoft文档提供了零碎的信息,但我无法实现正在运行的MFT。到目前为止我做了什么:在方法GetAttribu

c++ - Windows7中的硬件加速缩放MFT

我正在搜索基于硬件加速(GPU)的视频缩放。我在以下线程中找到了广泛的讨论Howtousehardwarevideoscalers?和HardwareAcceleratedImageScalinginwindowsusingC++我尝试坚持使用基于MFT的缩放,因为我还在我的应用程序中使用了H.264编码器MFT。对于基于MFT的解决方案,我们有两种选择-1.VideoResizerDSP2.VideoProcessorMFT但这两种方法都使用了MF_SA_D3D_AWARE.如下所述:视频MFT具有属性MF_SA_D3D_AWARE.aspx可用于查询是否支持DirectX3D硬件加

windows - 转储 $mft 文件的内容

对于我正在做的一些商业项目,我需要能够读取存储在$mft文件中的实际数据。我找到了一个gpllib这可能会有所帮助,但由于它是gpl,我无法将它集成到我的代码中。有人可以指点我可以使用的项目/或指点我相关的WindowsAPI(不需要1000行代码即可实现的东西)顺便说一句,为什么Windows不允许我直接读取mft文件?(通过创建文件和读取方法,如果我想毁掉我的驱动器,那是我的事,不是女士的事)。谢谢。 最佳答案 您只需使用\.\X上的CreateFile()打开卷的句柄:其中X是驱动器号(查看CreateFile()上的MSDN

c++ - Media Foundation - 如何在 MFT(Media Foundation Transform)中更改帧大小

我正在尝试实现能够旋转视频的MFT。旋转本身将在转换函数内完成。为此,我需要更改输出帧大小,但我不知道该怎么做。作为起点,我使用了Microsoft提供的MFT_Grayscale示例。我将此MFT作为转换节点包含在部分拓扑中HRESULTPlayer::AddBranchToPartialTopology(IMFTopology*pTopology,IMFPresentationDescriptor*pSourcePD,DWORDiStream){...IMFTopologyNodepTransformNode=NULL;...hr=CreateTransformNode(CLSID
12