10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-7C533836-0D27-5519-BC1D-7153AC8BE4C0" xml:lang="en"><title>Media |
12 <concept id="GUID-7C533836-0D27-5519-BC1D-7153AC8BE4C0" xml:lang="en"><title>Media |
13 Driver Guide</title><shortdesc>Describes the issues that need to be considered, when writing a |
13 Driver Guide</title><shortdesc>Describes the issues that need to be considered, when writing a |
14 media device driver for a writable data demand paging environment. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 media device driver for a writable data demand paging environment. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
15 <section id="GUID-46C98F8A-1486-4FAD-918D-3FB0E7CA372E"><title>Purpose</title> <p>This document explains the points that |
15 <section id="GUID-46C98F8A-1486-4FAD-918D-3FB0E7CA372E"><title>Purpose</title> <p>This |
16 have to be considered when writing a media driver in an environment that uses |
16 document explains the points that have to be considered when writing a media |
17 writable data paging. </p> </section> |
17 driver in an environment that uses writable data paging. </p> </section> |
18 <section id="GUID-1A89843E-B174-49F0-87D8-A8ADBE933A54"><title>Issues to consider</title> <p>The main issue to consider when |
18 <section id="GUID-1A89843E-B174-49F0-87D8-A8ADBE933A54"><title>Issues to consider</title> <p>The |
19 writing a media device driver for a writable demand paging environment is |
19 main issue to consider when writing a media device driver for a writable demand |
20 to avoid page faults from occurring in DFCs, since this can lead to a deadlock |
20 paging environment is to avoid page faults from occurring in DFCs, since this |
21 condition between the driver and the client process. </p> <p>This can be avoided |
21 can lead to a deadlock condition between the driver and the client process. </p> <p>This |
22 using the following methods: </p> <ul> |
22 can be avoided using the following methods: </p> <ul> |
23 <li id="GUID-76EF65C9-63E8-5C9B-99CD-A8BFBBA9B68C"><p>Use shared chunks. </p> <p>Shared |
23 <li id="GUID-76EF65C9-63E8-5C9B-99CD-A8BFBBA9B68C"><p>Use shared chunks. </p> <p>Shared |
24 chunks are memory areas that are accessible by both kernel-side and user-side |
24 chunks are memory areas that are accessible by both kernel-side and user-side |
25 and they are never paged. </p> <p>This is the best solution for drivers that |
25 and they are never paged. </p> <p>This is the best solution for drivers that |
26 involve fast throughput such as media drivers. </p> </li> |
26 involve fast throughput such as media drivers. </p> </li> |
27 <li id="GUID-32198DFA-CCF9-5260-A677-88F5B9FBF315"><p>Use synchronous rather |
27 <li id="GUID-32198DFA-CCF9-5260-A677-88F5B9FBF315"><p>Use synchronous rather |
42 memory model</xref> </p> <p>This provides the ability for the memory to be |
42 memory model</xref> </p> <p>This provides the ability for the memory to be |
43 mapped into a drive's address space as unpaged. </p> <p>This is an alternative |
43 mapped into a drive's address space as unpaged. </p> <p>This is an alternative |
44 to the use of shared chunks. </p> <p>However, this is not supported on the |
44 to the use of shared chunks. </p> <p>However, this is not supported on the |
45 moving or multiple memory models. </p> </li> |
45 moving or multiple memory models. </p> </li> |
46 </ul> </section> |
46 </ul> </section> |
47 <section id="GUID-4FD645F8-26C0-411E-9B82-56085E88CD74"><title>See also</title> <p> <xref href="GUID-91C11D80-7A62-5135-8EE0-6EC5576D1118.dita">Demand |
|
48 Paged Device Drivers Writing Guide</xref> </p> <p>The above document is an |
|
49 guide writing to device drivers. </p> </section> |
|
50 </conbody></concept> |
47 </conbody></concept> |