ما هو الغرض من فرز بت ناقلات الميداني في "~" البيانات الوصفية رأس في .صافي الجمعية ؟

StackOverflow https://stackoverflow.com/questions/1619614

  •  06-07-2019
  •  | 
  •  

سؤال

ووفقا القسم الثاني الفوقية ، تقول أن صالح حقل بت الذي الملاحظات التي CLR الفوقية الجداول موجودة في .صافي قابل للتنفيذ لكن ما لا أستطيع فهمه هو ما "فرز" الميدان هو--ما هي أهميتها و ما يجب أن تنبعث في هذا المجال عندما خلق بلدي .صافي قابل للتنفيذ المحمولة الصور ؟

هل كانت مفيدة؟

المحلول

وأعتقد أن المجال فرزها هو مجرد التلميح إذا تم فرزها جدول بيانات تعريف محدد أم لا (انها bitfield تماما مثل سارية المفعول).

وهذا من شأنه أن يسمح implemenation من وقت لإجراء بحث ثنائي على الطاولة مباشرة من البيانات memmapped.

نصائح أخرى

تحرير:هذا ليس جوابا ، لقد أخطأ في مسألة ما يجري حول صالحة الحقل بدلا من فرز المجال ، ولكن أنا أترك الأمر هنا في هذه الحالة هو ذات الصلة إلى الإجابة

فإن "صالح" الميدان الذي تتحدث عنه هو موضح في القسم الثاني, §24.2.6 مع الجزء ذي الصلة على النحو التالي:

صالحة مجال 64 بت bitvector أن لها مجموعة بت لكل جدول المخزنة في تيار ، رسم الخرائط من الجداول والفهارس تعطى في بداية §22.على سبيل المثال عندما DeclSecurity الجدول موجود في منطقية الفوقية ، بت 0x0e يجب أن يكون في صالح ناقلات.فهو باطل لتشمل غير موجودة الجداول في صالحة, لذلك كل بت أعلاه 0x2c يجب أن يكون صفر.

كل قسم فرعي من القسم 22 بدءا §22.2 يصف طاولة واحدة ، ويعطي قليلا مؤشر.على سبيل المثال ، §22.2 بعنوان "الجمعية:0x20".هذا يعني أنه إذا وفقط إذا كانت الجمعية الجدول المبين في المادة 22.2 موجود في PE ، ثم بت 0x20 يجب تعيين في Valid الحقل.علما أن هذا لا لا يعني Valid & 0x20 == 0x20, فهذا يعني أن 0x20th (أي 32) بت من Valid يجب تعيين ، وهو يقول Valid & (1 << 0x20) == (1 << 0x20).

لفترة من الوقت لم أكن متأكدا مما إذا كان 0-فهرسة أو 1-فهرسة, لذا يفترض 0-فهرستها.لكني الآن أعلم يقينا أنه هو 0-فهرسة, لأن وحدة الجدول هو الجدول 0x00.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top