UnauthorizedAccessException no MemoryMappedFile no C # 4
Eu queria brincar com um MemoryMappedFile para acessar um arquivo binário existente. Se isso for possível ou eu sou uma pessoa louca?
A ideia seria mapear o arquivo binário existente diretamente na memória para algumas operações preferencialmente de alta velocidade. Ou, pelo menos, ver como essas coisas funcionavam.
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);
Eu recebo System.UnauthorizedAccessException foi manipulado (Message = acesso ao caminho é negado.) Na linha mf.CreateViewAccessor ().
Eu não acho que é permissões de arquivo, desde que eu estou executando como um usuário administrador agradável e inseguro, e não existem outros programas abertos que podem ter um bloqueio de leitura no arquivo. Isso está no Vista com o UAC desativado.
Se simplesmente não for possível e eu perdi alguma coisa na documentação, por favor me avise. Eu mal conseguia encontrar qualquer coisa referenciando esse recurso do .net 4.0
Obrigado!