I/O 작업을 위한 디바이스 프로그래밍
I/O 작업을 위해 디바이스를 프로그래밍하는 SynchCritSection 루틴을 디자인, 작성 및 호출하기 위해 다음 일반 지침을 사용합니다.
I/O 작업을 위해 디바이스를 프로그래밍하는 SynchCritSection 루틴은 가능한 한 빨리 제어를 반환해야 합니다.
이러한 이유로 SynchCritSection 루틴은 I/O용 디바이스를 설정하는 데 필요한 작업만 수행해야 합니다. 따라서 드라이버는 모든 IRP 전처리를 수행하고, 다른 드라이버 루틴에 대한 상태 정보를 초기화하고, SynchCritSection 루틴을 호출하기 전에 하드웨어 리소스를 획득해야 합니다.
디바이스 드라이버에는 디바이스를 프로그래밍하는 여러 SynchCritSection 루틴이 있을 수 있습니다.
예를 들어 읽기 요청을 설정하는 디바이스의 드라이버가 특정 디바이스 제어 요청을 설정하는 것과 현저하게 다르면 각 요청 유형에 대해 디바이스를 프로그래밍하는 별도의 SynchCritSection 루틴이 있을 수 있습니다.
모든 SynchCritSection 루틴을 실행하면 드라이버의 ISR이 실행되지 않으므로 모든 SynchCritSection 루틴은 가능한 한 빨리 컨트롤을 반환해야 합니다.
switch 문을 사용하여 단일 대규모 범용 SynchCritSection 루틴을 작성하거나 여러 개의 중첩된 경우를 작성해서는 안 됩니다. 다음.. 실행할 작업 또는 업데이트할 상태 정보를 결정하는 else 문입니다. 반면에 단일 디바이스 레지스터만 프로그래밍하는 수많은 SynchCritSection 루틴을 작성하지 않아야 합니다.