UnauthorizedAccessException na MemoryMappedFile w C # 4

Chciałem pobawić się przy użyciu MemoryMappedFile, aby uzyskać dostęp do istniejącego pliku binarnego. Jeśli to w ogóle możliwe, czy jestem szaloną osobą?

Pomysł polegałby na zmapowaniu istniejącego pliku binarnego bezpośrednio do pamięci w przypadku niektórych najlepiej działających operacji. Albo przynajmniej przekonać się, jak te rzeczy zadziałały.

        using System.IO.MemoryMappedFiles;


        System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\testparsercap.pcap");
        MemoryMappedFileSecurity sec = new MemoryMappedFileSecurity();
        System.IO.FileStream file = fi.Open(System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite);
        MemoryMappedFile mf = MemoryMappedFile.CreateFromFile(file, "testpcap", fi.Length, MemoryMappedFileAccess.Read, sec, System.IO.HandleInheritability.Inheritable, true);
        MemoryMappedViewAccessor FileMapView = mf.CreateViewAccessor();
        PcapHeader head = new PcapHeader();
        FileMapView.Read<PcapHeader>(0, out head);

Otrzymałem nieobsługiwany System.UnauthorizedAccessException (Message = Dostęp do ścieżki jest zabroniony) w linii mf.CreateViewAccessor ().

Nie sądzę, aby były to uprawnienia do plików, ponieważ pracuję jako miły niezabezpieczony użytkownik administratora i nie ma żadnych innych programów, które mogłyby mieć blokadę odczytu pliku. To jest w systemie Vista z wyłączoną funkcją UAC.

Jeśli jest to po prostu niemożliwe i przegapiłem coś w dokumentacji, daj mi znać. Ledwie mogłem znaleźć cokolwiek, co odnosi się do tej funkcji .net 4.0

Dzięki!

questionAnswers(4)

yourAnswerToTheQuestion