搜索文件到Ntfs
本文关键字:Ntfs 文件 搜索 | 更新日期: 2023-09-27 17:49:43
我是Pinvoke的新手。我想得到mft后,我找到根,当我可以访问目录。我想使用DeviceIoControl
,如下面的代码:
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_GET_NTFS_VOLUME_DATA, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
我不知道FSCTL_GET_NTFS_VOLUME_DATA
的值
文档将WinIoCtl.h
列为相关的标头。当我们看到宏声明时,我们看到:
#define FSCTL_GET_NTFS_VOLUME_DATA '
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
这就给我们留下了一些工作要做。偷懒的方法是编写一个程序发出值:
#include <Windows.h>
#include <iostream>
#include <iomanip>
int main()
{
DWORD code = FSCTL_GET_NTFS_VOLUME_DATA;
std::cout << "0x" << std::hex << std::setfill('0') << std::setw(8) << code;
return 0;
}
输出我们想要的值:
<>之前0 x00090064