Unterstützungsroutinen für ATA-Porttreiber
Auf dieser Seite werden die Supportroutinen kategorisiert, die vom systemseitig bereitgestellten ATA-Porttreiber bereitgestellt werden.
Eine Liste der MINIPORT-Routinen des ATA-Treibers finden Sie unter ATA Miniport-Treiber.
Initialisierungsroutine
Der ATA-Porttreiber stellt die folgende Initialisierungsroutine bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortInitializeEx | Initialisiert die Port- und Miniporttreiber. |
Routinen für den PCI-Konfigurationsspeicherzugriff
Der ATA-Porttreiber bietet die folgenden Routinen, mit denen Sie den Inhalt des PCI-Konfigurationsraums des Geräts lesen und ändern können.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortGetBusData | Ruft Daten vom angegebenen Speicherort im PCI-Konfigurationsbereich des Geräts ab. |
AtaPortSetBusData | speichert die Daten im PCI-Konfigurationsraum des angegebenen Geräts am angegebenen Offset. |
Routinen für die Verarbeitung von E/A-Anforderungen
Der ATA-Porttreiber bietet die folgenden E/A-Anforderungsverarbeitungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortGetScatterGatherList | Ruft die dieser Anforderung zugeordnete Punkt-/Sammlungsliste ab. |
AtaPortGetPhysicalAddress | Konvertiert den virtuellen Adressbereich in den physischen Adressbereich. |
AtaPortGetDeviceBase | Gibt eine zugeordnete logische Basisadresse zurück, die für die Kommunikation mit einem Host Bus Adapter (HBA) verwendet wird. |
AtaPortGetUncachedExtension | Ordnet einen nicht zwischengespeicherten gemeinsamen Puffer zu, der von der CPU und dem Gerät gemeinsam genutzt wird. |
AtaPortBuildRequestSenseIrb | Erstellt und gibt einen IRB für Vorgangscode SCSIOP_REQUEST_SENSE zurück. |
AtaPortReleaseRequestSenseIrb | Gibt den Anforderungssinn-IRB frei, der mithilfe von AtaPortBuildRequestSenseIrb zugewiesen wird. |
AtaPortCompleteAllActiveRequests | Schließt alle aktiven IRBs für das angegebene Gerät ab. |
AtaPortCompleteRequest | Schließt den angegebenen IRB ab. |
Rückrufroutinen
Der Miniporttreiber verwendet mehrere Routinen, um einen Rückruf vom Porttreiber anzufordern.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortRequestWorkerRoutine | Fordert eine Workerroutine an. |
AtaPortRequestSynchronizedRoutine | Fordert die Synchronisierung mit der Interruptdienstroutine (ISR) an. |
AtaPortControllerSyncRoutine | Ermöglicht synchronisierten Zugriff auf Datenstrukturen, die über alle Kanäle auf einem Controller freigegeben werden. |
AtaPortRequestTimer | Fordert einen Timerrückruf an. |
Routinen, die eine Konfigurationsänderung melden
Die folgenden Routinen ermöglichen es dem Miniporttreiber, den ATA-Porttreiber über Änderungen an der Konfiguration der Geräte zu benachrichtigen, die an den Kanal angefügt sind.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortBusChangeDetected | Benachrichtigt den Porttreiber über Änderungen an der Gerätekonfiguration auf dem angegebenen Kanal. |
AtaPortRequestPowerStateChange | Fordert einen Energiezustandsübergang für das angegebene Gerät an. |
Routinen zum Steuern von Anforderungswarteschlangen
Der Porttreiber verwaltet eine Anforderungswarteschlange pro LUN (Logical Unit Number) und eine Anforderungswarteschlange für jeden Kanal. Der Miniporttreiber kann die folgenden Routinen verwenden, um die verschiedenen Anforderungswarteschlangen anzuhalten und fortzusetzen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortDeviceBusy | Informiert den Porttreiber darüber, dass das angegebene Gerät ausgelastet ist. |
AtaPortDeviceReady | Informiert den Porttreiber darüber, dass das angegebene Gerät bereit ist, neue Anforderungen zu akzeptieren. |
Hilfsprogrammroutinen
Die folgenden Routinen sind allgemeine Hilfsprogrammunterstützungsfunktionen für Miniporttreiber.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortCopyMemory | Kopiert Daten von einem Speicherort an einen anderen. |
**AtaPortMoveMemory-Routine | Kopiert Daten von einem Speicherort an einen anderen. |
AtaPortConvertUlongToPhysicalAddress | Konvertiert eine angegebene ULONG-Adresse in einen Wert vom Typ IDE_PHYSICAL_ADDRESS. |
AtaPortConvertPhysicalAddressToUlong | Schneidet eine Adresse vom Typ IDE_PHYSICAL_ADDRESS zu einer ULONG ab. |
AtaPortStallExecution | Stände im Miniport-Fahrer. |
AtaPortInitializeQueueTag | Initialisiert die Liste der Warteschlangentags für das angegebene Gerät. |
AtaPortAllocateQueueTag | Gibt ein Warteschlangentag für das angegebene Gerät zurück. |
AtaPortReleaseQueueTag | Gibt das angegebene Warteschlangentag frei. |
Debug- und Fehlerberichtsroutinen
Die folgende Routine kann für Debug- und Fehlerberichterstattung verwendet werden.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortDebugPrint | Übergibt eine Nachrichtenzeichenfolge an den Kerneldebugger, damit der Debugger gedruckt werden soll. |
Routinen für Geräteport und Zugriff registrieren
Der ATA-Porttreiber stellt die folgenden Port- und Registrierungsunterstützungsroutinen bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortReadPortBufferUchar | Überträgt eine bestimmte Anzahl von Bytewerten ohne Vorzeichen aus dem HBA in einen Puffer. |
AtaPortReadPortBufferUlong | Überträgt eine bestimmte Anzahl von ULONG-Werten aus dem HBA in einen Puffer. |
AtaPortReadPortBufferUshort | Überträgt eine bestimmte Anzahl von USHORT-Werten aus dem HBA in einen Puffer. |
AtaPortReadPortUchar | Liest einen Bytewert ohne Vorzeichen aus dem HBA. |
AtaPortReadPortUlong | Liest einen ULONG-Wert aus dem HBA. |
AtaPortReadPortUshort | Liest einen USHORT-Wert aus dem HBA. |
AtaPortReadRegisterBufferUchar | Überträgt eine angegebene Anzahl von Bytes ohne Vorzeichen vom HBA in einen Puffer. |
AtaPortReadRegisterBufferUlong | Überträgt eine angegebene Anzahl von ULONG aus dem HBA in einen Puffer. |
AtaPortReadRegisterBufferUshort | Überträgt eine angegebene Anzahl von USHORT aus dem HBA in einen Puffer. |
AtaPortReadRegisterUchar | Liest einen Bytewert ohne Vorzeichen aus dem HBA. |
AtaPortReadRegisterUlong | Liest einen ULONG-Wert aus dem HBA. |
AtaPortReadRegisterUshort | Liest einen USHORT-Wert aus dem HBA. |
AtaPortWritePortBufferUchar | Schreibt einen Wert in eine angegebene Registeradresse. |
AtaPortWritePortBufferUlong | Schreibt einen Wert in eine angegebene Registeradresse. |
AtaPortWritePortBufferUshort | Schreibt einen Wert in eine angegebene Registeradresse. |
AtaPortWritePortUchar | Überträgt einen Bytewert ohne Vorzeichen an den HBA. |
AtaPortWritePortUlong | Überträgt einen ULONG-Wert an den HBA. |
AtaPortWritePortUshort | Überträgt einen USHORT-Wert an den HBA. |
AtaPortWriteRegisterBufferUchar | Überträgt die angegebene Anzahl von Bytes ohne Vorzeichen aus einem Puffer an den HBA. |
AtaPortWriteRegisterBufferUlong | Überträgt die angegebene Anzahl von ULONG-Werten aus einem Puffer an den HBA. |
AtaPortWriteRegisterBufferUshort | Überträgt die angegebene Anzahl von USHORT-Werten aus einem Puffer in den HBA. |
AtaPortWriteRegisterUchar | Überträgt ein nicht signiertes Byte an die HBA-Adresse. |
AtaPortWriteRegisterUlong | Überträgt einen ULONG-Wert an die HBA-Adresse. |
AtaPortWriteRegisterUshort | Überträgt einen USHORT-Wert an die HBA-Adresse. |
Routinen für den Registrierungszugriff
Ein Miniporttreiber, der die Kanalschnittstelle implementiert, kann die folgenden Routinen aufrufen, um auf die Windows-Registrierung zuzugreifen. Miniporttreiber, die nur die Controllerschnittstellenroutinen implementieren, können nicht auf diese Routinen zugreifen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
AtaPortRegistryAllocateBuffer | Ordnet einen Puffer für Registrierungsvorgänge zu. |
AtaPortRegistryFreeBuffer | Gibt den Registrierungspuffer frei, der mithilfe von AtaPortRegistryAllocateBuffer zugeordnet wurde. |
AtaPortRegistryControllerKeyRead | Liest die Daten, die dem angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN zugeordnet sind, wobei N die Nummer des Controllers ist. |
AtaPortRegistryContrlollerKeyWrite | Schreibt die Daten in den angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN, wobei N die Nummer des Controllers ist. |
AtaPortRegistryControllerKeyWriteDeferred | Schreibt die Daten asynchron in den angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN, wobei N die Nummer des Controllers ist. |
AtaPortRegistryChannelSubKeyRead | Liest die Daten, die dem angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM zugeordnet sind, wobei N die Nummer des Controllers und M die Nummer des Kanals ist. |
AtaPortRegistryChannelSubKeyWrite | Schreibt die Daten in den angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, wobei N die Nummer des Controllers und M die Nummer des Kanals ist. |
AtaPortRegistryChannelSubKeyWriteDeferred | Schreibt die Daten asynchron in den angegebenen Wertnamen unter dem Registrierungsschlüssel HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, wobei N die Nummer des Controllers und M die Nummer des Kanals ist. |