Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Secure Digital (SD) Karte Technologie begann mit tragbaren Miniatur-Speicherkarten, aber mit der Veröffentlichung der SDIO-Spezifikation (Secure Digital I/O) hat die Secure Digital Association (SDA) die Definition der SD-Technologie erweitert, um eine Vielzahl von Karte Funktionen wie Bluetooth-Geräte, Videokameras, Wireless LAN-Geräte und GPS-Empfänger (Global Positioning System) zu umfassen. In diesem Dokument wird erläutert, wie das Betriebssystem die Karte Funktionserweiterungen der SD-Technologie unterstützt.
Kartenleser für viele frühe SD-Speichergeräte wurden für die Verbindung mit dem USB-Bus entwickelt. Windows verwaltet diese Geräte mit dem USB-Massenspeichertreiber (usbstor.sys) und dem nativen Speicherklassentreiber (disk.sys), wie im folgenden Diagramm dargestellt:
Eine ausführlichere Beschreibung des Gerätestapels, den Windows für einen Speicher Karte erstellt, der eine Verbindung mit dem USB-Bus herstellt, finden Sie unter Device Object Example for a USB Mass Storage Device.
Das Betriebssystem bietet Unterstützung für SD-Hostcontroller, die direkt mit dem PCI-Bus verbunden sind. Wenn das System einen SD-Hostcontroller aufzählt, lädt es einen nativen SD-Bustreiber (sdbus.sys). Wenn ein Benutzer einen SD-Speicher Karte einfügt, lädt Windows einen nativen SD-Speicherklassentreiber (sffdisk.sys) und einen Speicherminiporttreiber (sffp_sd.sys) auf den Bustreiber. Wenn ein Benutzer eine SD-Karte mit einer anderen Art von Funktion einfügt, z. B. GPS oder WLAN, lädt Windows einen vom Hersteller bereitgestellten Treiber für das Gerät.
Alle Gerätetreiber im SD-Stapel, unabhängig davon, ob sie systemintern oder vom Anbieter bereitgestellt werden, müssen mit dem SD-Bustreiber kommunizieren, indem Routinen in der statischen SD-Busbibliothek (sdbus.lib) aufgerufen werden. SD-Treiber müssen beim Kompilieren eine Verknüpfung mit dieser Bibliothek herstellen. Das folgende Diagramm zeigt den SD-Treiberstapel, den das System erstellt, wenn es einen SD-Controller und zugehörige Karten auflistet:
SD-Gerätetreiber können weder direkt auf den Hostcontroller-Registersatz zugreifen, noch können sie Passthroughbefehle für den Hostcontroller in E/A-Anforderungspakete (IRPs) einbetten. SD-Gerätetreiber geben Befehle an den Hostcontroller aus, indem sie die SD-Busbibliotheksroutinen aufrufen, und die Bibliothek generiert dann die entsprechenden SD-Befehle für den Hostcontroller.
SD-Gerätetreiber müssen Standard-PnP- und Power-IRPs verarbeiten, aber sie fordern oder verwalten keine Hardwareressourcen wie Ports, Arbeitsspeicher oder Interruptvektoren. Daher sind SD-Gerätetreiber zum Zuordnen von Hardwareressourcen beim Verarbeiten einer IRP_MN_START_DEVICE Anforderung nicht erforderlich. Wenn ein SD-Gerätetreiber jedoch eine IRP_MN_STOP_DEVICE Anforderung empfängt, muss er alle E/A-Vorgänge beenden. Darüber hinaus muss der Treiber seine Schnittstelle zum SD-Bustreiber auf eine IRP_MN_QUERY_REMOVE_DEVICE Anforderung schließen.
Wenn ein Hardware-Interrupt auftritt, fängt die SD-Busbibliothek den Interrupt ab, maskiert weitere Interrupts und benachrichtigt den SD-Gerätetreiber mithilfe einer Rückrufroutine, dass ein Hardware-Interrupt aufgetreten ist. Eine Beschreibung der Rückrufroutine, die der Bustreiber verwendet, um einen SD-Gerätetreiber über Hardwareunterbrechungen zu benachrichtigen, finden Sie unter PSDBUS_CALLBACK_ROUTINE. Eine allgemeine Erklärung dazu, wie der SD-Treiberstapel und die Bibliotheken Hardwareunterbrechungen verwalten, finden Sie unter Behandeln von Secure Digital (SD) Hardware Interrupts.
Die Headerdatei ntddsd.h , die im Windows Driver Kit (WDK) bereitgestellt wird, deklariert die Prototypen für die Routinen, die von der SD-Busbibliothek verfügbar gemacht werden.