std::wstring strDosPathw= L"\\Device\\vmsmb\\VSMB-{dcc079ae-60ba-4d07-847c-3493609c0870}\\os\\Windows\\System32\\kernel32.dll";
HANDLE hAFD;
UNICODE_STRING objectName;
OBJECT_ATTRIBUTES objectAttr;
IO_STATUS_BLOCK statusBlock{};
RtlInitUnicodeString(&objectName, strDosPathw.c_str());
InitializeObjectAttributes(&objectAttr, &objectName, 0, NULL, NULL);
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS status = NtCreateFile(
&hAFD,
GENERIC_READ,
&objectAttr,
&statusBlock,
nullptr,
0x80,
FILE_SHARE_READ| FILE_SHARE_WRITE,
FILE_OPEN,
FILE_NON_DIRECTORY_FILE,
nullptr,
0);
printf("NtCreateFile %ls %p\r\n", objectName.Buffer, status);
if(SUCCEEDED(status))
{
status = NtClose(hAFD);
printf("NtClose %ls %p\r\n", objectName.Buffer, status);
}
正确创建vmsmb文件方法
最新推荐文章于 2025-08-22 21:35:45 发布