다음을 통해 공유


SD 카드 드라이버 스택

SD(Secure Digital) 카드 기술은 이식 가능한 미니어처 메모리 카드로 시작했지만 SDIO(Secure Digital I/O) 사양이 출시되면서 SDA(Secure Digital Association)는 Bluetooth 디바이스, 비디오 카메라, 무선 LAN 디바이스 및 GPS(Global Positioning System) 수신기와 같은 다양한 카드 기능을 포함하도록 SD 기술의 정의를 확대했습니다. 이 문서에서는 운영 체제가 SD 기술에 대한 카드 함수 확장을 지원하는 방법을 설명합니다.

많은 초기 SD 스토리지 디바이스에 대한 카드 판독기는 USB 버스에 연결하도록 설계되었습니다. Windows는 다음 다이어그램에 표시된 대로 USB 대용량 스토리지 드라이버(usbstor.sys) 및 네이티브 스토리지 클래스 드라이버(disk.sys)를 사용하여 이러한 디바이스를 관리합니다.

초기 sd 스토리지 디바이스에 대한 디바이스 스택을 보여 주는 다이어그램

WINDOWS가 USB 버스에 연결하는 메모리 카드에 대해 만드는 디바이스 스택에 대한 자세한 설명은 USB 대용량 스토리지 디바이스 대한Device Object 예제를 참조하세요.

운영 체제는 PCI 버스에 직접 연결하는 SD 호스트 컨트롤러를 지원합니다. 시스템은 SD 호스트 컨트롤러를 열거할 때 네이티브 SD 버스 드라이버(sdbus.sys)를 로드합니다. 사용자가 SD 메모리 카드를 삽입하는 경우 Windows는 버스 드라이버 위에 네이티브 SD 스토리지 클래스 드라이버(sffdisk.sys) 및 스토리지 미니포트 드라이버(sffp_sd.sys)를 로드합니다. 사용자가 GPS 또는 무선 LAN과 같은 다른 종류의 기능을 가진 SD 카드를 삽입하는 경우 Windows는 장치에 대해 공급업체에서 제공하는 드라이버를 로드합니다.

네이티브 또는 공급업체에서 제공하는 SD 스택의 모든 디바이스 드라이버는 정적 SD 버스 라이브러리(sdbus.lib)에서 루틴을 호출하여 SD 버스 드라이버와 통신해야 합니다. SD 드라이버는 컴파일할 때 이 라이브러리에 연결해야 합니다. 다음 다이어그램은 SD 컨트롤러 및 함께 제공되는 카드를 열거할 때 시스템에서 만드는 SD 드라이버 스택을 보여 줍니다.

sd 소프트웨어와 하드웨어 구성 요소 간의 관계를 보여 주는 다이어그램

SD 디바이스 드라이버는 호스트 컨트롤러 레지스터 집합에 직접 액세스할 수 없으며 I/O 요청 패킷(IRP)에 호스트 컨트롤러에 대한 통과 명령을 포함할 수도 없습니다. SD 디바이스 드라이버는 SD 버스 라이브러리 루틴을 호출하여 호스트 컨트롤러에 명령을 실행한 다음, 라이브러리가 호스트 컨트롤러에 적절한 SD 명령을 생성합니다.

SD 디바이스 드라이버는 표준 PnP 및 전원 IRP를 처리해야 하지만 포트, 메모리 또는 인터럽트 벡터와 같은 하드웨어 리소스를 요청하거나 관리하지는 않습니다. 따라서 SD 디바이스 드라이버는 IRP_MN_START_DEVICE 요청을 처리할 때 하드웨어 리소스를 매핑할 필요가 없습니다. 그러나 SD 디바이스 드라이버가 IRP_MN_STOP_DEVICE 요청을 받으면 모든 I/O 작업을 중지해야 합니다. 또한 드라이버는 IRP_MN_QUERY_REMOVE_DEVICE 요청에 대한 응답으로 SD 버스 드라이버에 대한 인터페이스를 닫아야 합니다.

하드웨어 인터럽트가 발생하면 SD 버스 라이브러리는 인터럽트를 가로채고, 추가 인터럽트를 마스킹하고, 하드웨어 인터럽트가 발생했음을 콜백 루틴을 통해 SD 디바이스 드라이버에 알릴 수 있습니다. 버스 드라이버가 SD 디바이스 드라이버에 하드웨어 인터럽트를 알리는 데 사용하는 콜백 루틴에 대한 설명은 PSDBUS_CALLBACK_ROUTINE참조하세요. SD 드라이버 스택 및 라이브러리가 하드웨어 인터럽트를 관리하는 방법에 대한 일반적인 설명은 SD(Secure Digital) 하드웨어 인터럽트처리를 참조하세요.

WDK(Windows 드라이버 키트)에서 제공되는 ntddsd.h 헤더 파일은 SD 버스 라이브러리에서 노출하는 루틴에 대한 프로토타입을 선언합니다.