Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows'da dosya eşleme nesnesi oluşturmak, CreateFile işlevini kullanarak bir dosya açmayı içerir. Bu işlem, verimli erişim ve işleme için dosya içeriğini doğrudan belleğe eşlemenizi sağlar. Diğer işlemlerin dosyanın eşlenen bölümüne yazılamadığından emin olmak için dosyayı özel erişimle açmanız gerekir. Buna ek olarak, işlem artık dosya eşleme nesnesine ihtiyaç duymayana kadar dosya tanıtıcısı açık kalmalıdır. Özel erişim elde etmenin kolay bir yolu, CreateFilefdwShareMode parametresinde sıfır belirtmektir. CreateFile tarafından döndürülen tanıtıcı, CreateFileMapping işlevi tarafından bir dosya eşleme nesnesi oluşturmak için kullanılır.
CreateFileMapping işlevi, dosya eşleme nesnesine bir tanıtıcı döndürür. Bu tanıtıcı, paylaşılan belleğe erişebilmeniz için dosya görünümü oluşturulurken kullanılır. CreateFileMappingçağırdığınızda, bir nesne adı, dosyadan eşlenecek bayt sayısı ve eşlenen bellek için okuma/yazma izni belirtirsiniz. createFileMapping çağıran ilk işlem, dosya eşleme nesnesini oluşturur. Mevcut bir nesne için CreateFileMapping çağıran işlemler, mevcut nesneye bir tanıtıcı alır. GetLastError işlevini çağırarak CreateFileMapping'a yapılan başarılı bir çağrının dosya eşleme nesnesini oluşturup oluşturmadığını veya açıp açmadığını anlayabilirsiniz. GetLastError oluşturma işlemine NO_ERROR ve sonraki işlemlere ERROR_ALREADY_EXISTS döndürür.
Erişim bayrakları CreateFile işlevi dosyayı açtığında belirtilenlerle çakışırsa CreateFileMapping işlevi başarısız olur. Örneğin, dosyayı okumak ve dosyaya yazmak için:
- CreateFile dosyasının fdwAccess parametresinde GENERIC_READ ve GENERIC_WRITE değerlerini belirtin.
- CreateFileMapping'infdwProtect parametresinde PAGE_READWRITE değerini belirtin.
Dosya eşleme nesnesi oluşturmak fiziksel belleği tahsis etmez, yalnızca ayırır.
Dosya Haritalama Boyutu
Dosya eşleme nesnesinin boyutu, eşlenen dosyanın boyutundan bağımsızdır. Ancak, dosya eşleme nesnesi dosyadan büyükse, CreateFileMapping döndürülmeden önce sistem dosyayı genişletir. Dosya eşleme nesnesi dosyadan küçükse, sistem dosyadan yalnızca belirtilen bayt sayısını eşler.
CreateFileMapping'indwMaximumSizeHigh ve dwMaximumSizeLow parametreleri, dosyadan eşlenecek bayt sayısını belirtmenize olanak sağlar:
Dosyanın boyutunun değişmesini istemiyorsanız (örneğin, salt okunur dosyaları eşlerken), CreateFileMapping öğesini çağırın ve hem dwMaximumSizeHigh hem de dwMaximumSizeLow için sıfır belirtin. Bunu yaptığınızda, dosyayla tam olarak aynı boyutta bir dosya eşleme nesnesi oluşturulur. Aksi takdirde, dosya eşleme nesneleri statik boyutta olduğundan tamamlanmış dosyanın boyutunu hesaplamanız veya tahmin etmeniz gerekir; oluşturulduktan sonra boyutları artırılamaz veya azaltılamaz. Bu şekilde uzunluğu sıfır olan bir dosyayı eşleme girişimi ERROR_FILE_INVALIDhata koduyla başarısız oluyor. Programlar, uzunluğu sıfır olan dosyaları test etmeli ve bu tür dosyaları reddetmelidir.
Adlandırılmış bir dosya tarafından yedeklenen dosya eşleme nesnesinin boyutu disk alanıyla sınırlıdır. Bir dosya görünümünün boyutu, kullanılabilir en büyük bitişik yedeklenmemiş sanal bellek bloğuyla sınırlıdır.
Seçtiğiniz dosya eşleme nesnesinin boyutu, bellek eşlemesi ile dosyanın ne kadar uzağında "görebileceğinizi" denetler. Boyutu 500 Kb olan bir dosya eşleme nesnesi oluşturursanız, dosyanın boyutu ne olursa olsun dosyanın yalnızca ilk 500 Kb'sine erişebilirsiniz. Daha büyük bir dosya eşleme nesnesi oluşturmak size herhangi bir sistem kaynağına mal olmadığından, dosyanın tamamını görüntülemeyi beklemeseniz bile dosyanın boyutu olan bir dosya eşleme nesnesi oluşturun (CreateFileMapping öğesinin dwMaximumSizeHigh ve dwMaximumSizeLow parametrelerini sıfır olarak ayarlayın). Sistem kaynaklarının maliyeti, görünümleri oluşturmak ve bunlara erişmekten kaynaklanır.
Dosyanın başında başlamayan bir bölümünü görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Dosyaİçinde Görünüm Oluşturma.
İlgili içerik
Dosya İçinde Görünüm Oluşturma