Коллеги! Сделал простой примерчик: Код (Text): program testopn; uses Windows, SysUtils, NTDLL; var r : NTSTATUS; h : THandle; sa : TNtAnsiString; su : TNtUnicodeString; obj : TNtObjectAttributes; inf : TIoStatusBlock; begin RtlInitAnsiString(@sa, PChar('\\?\' + ParamStr(0))); RtlAnsiStringToUnicodeString(@su, @sa, true); InitializeObjectAttributes(@obj, @su, OBJ_CASE_INSENSITIVE, 0, nil); r := NtOpenFile(h, GENERIC_READ, obj, inf, FILE_SHARE_READ, OPEN_EXISTING); // // здесь r = 0xC0000033 // if r = STATUS_SUCCESS then NtClose(h); RtlFreeUnicodeString(@su); RtlFreeAnsiString(@sa); end. Помогите, пожалуйста, разобраться с тем, как правильно записать UNC-путь. Ошибка говорит "Неверное имя папки". Хотя может моя ошибка где-то еще? Заранее спасибо!
abb Код (Text): ... //RtlInitAnsiString(@sa, PChar('\\?\' + ParamStr(0))); RtlInitAnsiString(@sa, PChar('\??\' + ParamStr(0))); ... r := NtOpenFile(h, GENERIC_READ, obj, inf, FILE_SHARE_READ, FILE_NON_DIRECTORY_FILE); // OPEN_EXISTING); ...