לדלג לתוכן

תרגול הקשר והקצאה

בנו טבלת callbacks עבור DriverEntry, dispatch, completion, DPC ו־work item. לכל אחד ציינו טווח IRQL אפשרי, האם process context מובטח ואיזה סוג זיכרון מותר לגעת בו. כאשר הדבר תלוי במסלול, כתבו את התנאי במקום תשובה מוחלטת.

הוסיפו למקצה המעבדה failpoint שמדמה כשל הקצאה, ובדקו שכל caller מטפל ב־NULL או ב־NTSTATUS בלי להמשיך עם context חלקי. אל תנסו למצות את כל ה־pool של ה־VM כדי ליצור כשל אקראי.

בדקו קוד שבו pointer ל־paged pool מועבר ל־DPC. הציעו שני תיקונים שונים והסבירו איזה מהם מתאים אם הפעולה עצמה צריכה לבצע המתנה חוסמת.