أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

INFO: FILE_FLAG_WRITE_THROUGH و FILE_FLAG_NO_BUFFERING

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية99794
الموجز
إشارة FILE_FLAG_WRITE_THROUGH CreateFile() يتسبب أي عمليات الكتابة التي تم إجراؤها على ذلك المقبض كتابتها مباشرة على الملف بدون يتم تخزينها مؤقتاً. يتم تخزين البيانات مؤقتاً (المخزنة في ذاكرة التخزين المؤقت القرص) ؛ ومع ذلك، فإنه لا يزال كتابة مباشرة على الملف. يسمح هذا الأسلوب عملية قراءة على البيانات لتنفيذ طلب قراءة من البيانات المخزنة مؤقتاً (إذا كان لا يزال هناك) ، بدلاً من الحاجة إلى القيام ملف قراءة الحصول على البيانات. لا يقوم بإرجاع استدعاء الكتابة حتى تتم كتابة البيانات إلى الملف. ينطبق هذا على عمليات الكتابة البعيد أيضاً--معيد التوجيه الشبكة بتمرير إشارة FILE_FLAG_WRITE_THROUGH إلى الملقم بحيث يعرف الملقم لا لتلبية طلب الكتابة حتى تتم كتابة البيانات إلى الملف.

FILE_FLAG_NO_BUFFERING بأخذ هذه الخطوة المفهوم إضافية ثم يلغي التخزين المؤقت الملف للقراءة مسبقة والتخزين المؤقت القرص, أيضاً كافة بحيث يتم ضمان القراءة كافة تأتي من الملف ومن عدم أي مخزن مؤقت النظام أو الذاكرة المؤقتة على القرص. عند استخدام FILE_FLAG_NO_BUFFERING ، يقرأ القرص يجب أن تتم عمليات الكتابة ضمن حدود مقطع ثم محاذاة المخزن المؤقت عناوين ضمن حدود مقطع القرص في الذاكرة.

هذه القيود بسبب استخدام المخزن المؤقت تمرير إلى القراءة أو الكتابة API مباشرة للإدخال/الإخراج مستوى الجهاز ضرورية؛ عند ذلك المستوى الخاص بك عناوين المخزن المؤقت و قطاع يجب أن تحققها أحجام أية قيود المحاذاة المعالج والوسائط الأجهزة التي يتم تشغيلها على.
معلومات أخرى
لا يعتمد CDFS 95 Windows (نظام الملفات المضغوطة) إشارة FILE_FLAG_NO_BUFFERING CreateFile(). بينما قد تقوم بتطبيق FSD 95 Windows مثل VFAT ، فإنه و FILE_FLAG_NO_BUFFERING غير علامة مطلوب برامج تشغيل نظام الملفات غير معتمد من قبل CDFS.

جزء التعليمات البرمجية هذا يوضح كيفية محاذاة البيانات في المخزن مؤقت قطاع وتمريرها إلى CreateFile():
  char buf[2 * SECTOR_SIZE - 1], *p;  p = (char *) ((DWORD) (buf + SECTOR_SIZE - 1) & ~(SECTOR_SIZE - 1));  h = CreateFile(argv[1], GENERIC_READ | GENERIC_WRITE,      FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,      FILE_ATTRIBUTE_NORMAL | FILE_FLAG_NO_BUFFERING, NULL);  WriteFile(h, p, SECTOR_SIZE, &dwWritten, NULL);				
مؤشر p محاذاة قطاع كما يشير ضمن المخزن المؤقت.

إذا كان لديك موقف الذي ترغب في مسح كافة الملفات المفتوحة في محرك الأقراص المنطقي الحالي يمكن القيام بذلك عن طريق:
   hFile = CreateFile("\\\\.\\c:", ....);   FlushFileBuffers(hFile);				
هذه الطريقة يؤدي كل بيانات إمكانية الكتابة إلى المخزن كافة الملفات المفتوحة في القسم "C:" مسح والفاصل كتابتها إلى القرص. لاحظ أن أي إجراء بواسطة أي شيء غير النظام لا يتأثر هذا تدفق; المؤقت أي ملف المحتملة التخزين المؤقت القيام وقت التشغيل C. على الملفات المفتوحة مع إجراءات وقت تشغيل C. ولا تتأثر.

عند فتح ملف بعيد عبر شبكة الاتصال ، الملقم دوماً بتخزين ويتجاهل علامة لم التخزين المؤقت المحدد من قبل العميل. وهذا حسب التصميم. لا يمكن تطبيق "معيد التوجيه" و "الملقم بشكل صحيح دلالات الكامل FILE_FLAG_NO_BUFFERING عبر الشبكة. وبشكل خاص، لا يمكن أن تتحقق متطلبات حجم قطاع ومُحاذَى قطاع I/O. معاملة لذلك، في طالبني لـ FILE_FLAG_NO_BUFFERING تطبيق Win32-المستندة إلى معيد التوجيه وملقم هذه الرسالة على أنها طلب لـ FILE_FLAG_WRITE_THROUGH. الملف لم يتم إجراء تخزين مؤقت لدى العميل الكتابة انتقل مباشرة إلى الخادم إلى القرص على الملقم و أحجام للقراءة/الكتابة على شبكة الاتصال تماماً التطبيق يطلب عن. ومع ذلك، يتم التخزين المؤقت الملف على الخادم.

عدم التخزين المؤقت العميل أن تأثير آخر استناداً إلى نوع I/O. التخلص من مرات الوصول إلى ذاكرة التخزين المؤقت أو قراءة الأمام ولكن أيضاً قد يقلل الحجم ينقل وتلقيها. بشكل عام، للإدخال/الإخراج "متسلسلة" ، وهو فكرة جيدة إلى ذاكرة التخزين المؤقت على العميل. عشوائي الصغيرة، الوصول I/O فمن الأفضل غالباً لا إلى ذاكرة التخزين المؤقت.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 99794 - آخر مراجعة: 11/21/2006 15:47:46 - المراجعة: 4.2

Microsoft Win32 واجهة برمجة تطبيقات

  • kbmt kbapi kbfileio kbinfo kbkernbase KB99794 KbMtar
تعليقات
"> العلامات التجارية
  • © 2016 Microsoft
  • >/c1.microsoft.com/c.gif?DI=4050&did=1&t=">&did=1&t=">