Storport-Treiberunterstützungsroutinen
Auf dieser Seite werden einige der Supportroutinen kategorisiert, die miniports vom systemseitig bereitgestellten Storport-Treiber bereitgestellt werden. Eine vollständige Liste finden Sie unter storport.h .
Eine Liste der Miniportroutinen des Storport-Treibers finden Sie unter Storport Miniport-Treiberroutinen.
Supportroutinen für direkten Speicherzugriff
Der Storport-Treiber bietet die folgenden DMA-Unterstützungsroutinen (Direct Memory Access).
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortBuildScatterGatherList | Erstellt eine Punkt-/Sammlungsliste für den angegebenen Datenpuffer. |
StorPortGetScatterGatherList | Ruft die zugeordnete Scatter/Gather-Liste für den angegebenen SCSI-Anforderungsblock (SRB) ab. |
StorPortPutScatterGatherList | Gibt alle Ressourcen frei, die einer Scatter/Gather-Liste zugeordnet sind, die zuvor durch einen Aufruf der StorPortBuildScatterGatherList-Routine erstellt wurden. |
Allgemeine Supportroutinen
Storport bietet die folgenden allgemeinen Supportroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortDebugPrint | Gibt eine Debugzeichenfolge an den Kerneldebugger aus, wenn der Debugger angefügt ist. |
StorPortEtwEvent2 | Veröffentlicht ein ETW-Ereignis (Event Tracing for Windows) in einem Speicherablaufverfolgungskanal. Der Miniport kann zwei allgemeine ETW-Parameter protokollieren. Die ETW-Parameter werden als zwei Name-Wert-Paare ausgedrückt. |
StorPortEtwEvent4 | Veröffentlicht ein ETW-Ereignis in einem Speicherablaufverfolgungskanal. Der Miniport kann vier allgemeine ETW-Parameter protokollieren. Die ETW-Parameter werden als vier Name-Wert-Paare ausgedrückt. |
StorPortEtwEvent8 | Veröffentlicht ein ETW-Ereignis in einem Speicherablaufverfolgungskanal. Der Miniport kann acht allgemeine ETW-Parameter protokollieren. Die ETW-Parameter werden als acht Name-Wert-Paare ausgedrückt. |
StorPortGetActivityIdSrb | Ruft die ETW-Aktivitäts-ID ab, die einem Anforderungsblock zugeordnet ist. |
StorPortGetDeviceObjects | Gibt die Geräteobjekte zurück, die dem Adaptergerätestapel zugeordnet sind. Die zurückgegebenen Geräteobjekte sind die funktionalen und physischen Geräteobjekte des Adapters und das Geräteobjekt, an das das funktionale Geräteobjekt angefügt ist. |
StorPortGetSystemPortNumber | Ruft die systemseitig zugewiesene Portnummer für einen Speicheradapter ab. |
StorPortInitializeSListHead | Initialisiert den Kopf einer von Storport verwalteten singly verknüpften Liste. |
StorPortInterlockedFlushSList | Entfernt alle Elemente aus einer von Storport verwalteten, singly verknüpften Liste. Der Zugriff auf die Liste wird auf einem Multiprozessorsystem synchronisiert. |
StorPortInterlockedPopEntrySList | Entfernt ein Element von der Vorderseite einer von Storport verwalteten singly verknüpften Liste. Der Zugriff auf die Liste wird auf einem Multiprozessorsystem synchronisiert. |
StorPortInterlockedPushEntrySList | Fügt ein Element an der Vorderseite einer von Storport verwalteten, singly verknüpften Liste ein. Der Zugriff auf die Liste wird auf einem Multiprozessorsystem synchronisiert. |
StorPortInvokeAcpiMethod | Führt eine ACPI-Methode für ein Speichergerät aus. |
StorPortIsCurrentOsInstallationUpgrade | Überprüft, ob es sich bei der aktuellen Installation von Windows um ein Upgrade von einer früheren Version handelt oder nicht. |
StorPortIsDeviceOperationAllowed | Ermöglicht einem Miniport, zu bestimmen, ob Vorgänge für eine bestimmte Geräteverwaltungsklasse zulässig sind. |
StorPortLogError | Benachrichtigt den Porttreiber, dass ein Fehler aufgetreten ist. |
StorPortLogSystemEvent | Ermöglicht Miniporttreibern den vollständigen Zugriff auf die Funktionen der Windows-Kernelereigniseinrichtung, sodass Miniporttreiber Ereignisprotokolleinträge erstellen können, die bei der Behandlung von Speicherproblemen wirklich nützlich sind. Es bietet eine bessere Alternative zu StorPortLogError. |
StorPortQueryDepthSList | Ruft die Anzahl der Einträge in einer von Storport verwalteten singly verknüpften Liste ab. |
StorPortQueryPerformanceCounter | Fragt den aktuellen Systemleistungsindikatorwert ab und gibt den wert zurück. |
StorPortQuerySystemTime | Ruft die aktuelle Systemzeit ab. |
StorPortRegistryRead | Liest die Registrierungsdaten für das angegebene Gerät und den angegebenen Wert. |
StorPortRegistryReadAdapterKey | Liest die Hardware- oder Geräteregistrierungsadapterschlüssel in der Registrierung unter HKLM/CurrentControlSet/Enum/<Instanzpfad>/DeviceParameters/.... |
StorPortRegistryWriteAdapterKey | Schreibt die Hardware- oder Geräteregistrierungsadapterschlüssel in der Registrierung unter HKLM/CurrentControlSet/Enum/<Instanzpfad>/DeviceParameters/.... |
StorPortRegistryWrite | Konvertiert die Registrierungsdaten, die in einem angegebenen Puffer enthalten sind, von ASCII in Unicode und schreibt die Daten dann in den HBA-Speicherbereich des Miniporttreibers. |
Supportroutinen für die E/A-Anforderungsverarbeitung
Storport bietet die folgenden E/A-Anforderungsverarbeitungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortBusy | Benachrichtigt den Porttreiber darüber, dass der Adapter derzeit ausgelastet ist und ausstehende Anforderungen verarbeitet. |
StorPortCompleteRequest | Schließt alle ausstehenden Anforderungen ab, indem der SRB-wert status auf SrbStatus festgelegt wird. |
StorPortCompleteServiceIrp | Wird von einem virtuellen Storport-Miniporttreiber aufgerufen, wenn er eine Anforderung abschließen muss, die er in seiner HwStorProcessServiceRequest-Rückrufroutine empfangen hat. |
StorPortDeviceBusy | Benachrichtigt den Porttreiber darüber, dass die angegebene logische Einheit derzeit ausgelastet ist und ausstehende Anforderungen verarbeitet. |
StorPortDeviceReady | Benachrichtigt den Porttreiber, dass die angegebene logische Einheit bereit ist, neue Anforderungen zu verarbeiten. |
StorPortFreeWorker | Gibt ein Storport-Arbeitselement frei, das zuvor von der StorPortInitializeWorker-Routine zugewiesen wurde. |
StorPortGetRequestInfo | Ruft die E/A-Anforderungsinformationen ab, die einem SCSI-Anforderungsblock (SRB) zugeordnet sind, und gibt sie in einer STOR_REQUEST_INFO-Struktur zurück. |
StorPortInitializeWorker | Erstellt ein neues Storport-Arbeitselement, das in einem System workerthread ausgeführt wird. |
StorPortQueueWorkItem | Plant die Ausführung eines Storport-Arbeitselements im Kontext eines System workerthreads. |
StorPortPause | Hält einen Adapter für den angegebenen Zeitraum an. |
StorPortPauseDevice | Hält ein bestimmtes logisches Einheitsgerät für den angegebenen Zeitraum an. |
StorPortReady | Benachrichtigt den Porttreiber, dass der Adapter nicht mehr ausgelastet ist. |
StorPortResume | Setzt einen angehaltenen Adapter fort. |
StorPortResumeDevice | Setzt eine zuvor angehaltene logische Einheit fort. |
Initialisierungsunterstützungsroutinen
Der Storport-Treiber bietet die folgenden Initialisierungsunterstützungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortEnablePassiveInitialization | Ermöglicht die Ausführung der HwStorPassiveInitializeRoutine-Rückrufroutine des Miniports bei PASSIVE_LEVEL während der Miniportinitialisierung. |
StorPortGetActiveGroupCount | Gibt die Anzahl der Prozessorgruppen zurück, die im System vorhanden sind. |
StorPortGetActiveNodeCount | Gibt die Anzahl der Knoten zurück, die im System vorhanden sind. |
StorPortGetBusData | Ruft die busspezifischen Konfigurationsinformationen ab, die zum Initialisieren des HBA erforderlich sind. |
StorPortGetCurrentProcessorNumber | Ruft die aktuelle Prozessornummer aus dem Kernel ab. |
StorPortGetGroupAffinity | Erstellt eine Maske der aktiven Prozessoren in einer angeforderten Gruppe. |
StorPortGetHighestNodeNumber | Gibt die größtmögliche Knotennummer auf dem System zurück. |
StorPortGetLogicalProcessorRelationship | Gibt Beziehungsinformationen für einen oder mehrere angegebene Typen zurück. Diese Typen umfassen Gruppen, physische Pakete und Knoten im Hostsystem. Die zurückgegebenen Informationen umfassen Prozessoraffinitätsmasken, die aus den logischen Prozessoren im Hostsystem bestehen. Diese logischen Prozessoren verwenden die angegebenen Beziehungstypen. |
StorPortGetLogicalUnit | Gibt einen Zeiger auf den Speicherbereich des Miniporttreibers pro logischer Einheit zurück. |
StorPortGetNodeAffinity | Erstellt eine Maske der aktiven Prozessoren in einem angeforderten NUMA-Knoten (Non-Uniform Memory Access). |
StorPortGetStartIoPerfParams | Places die Leistungsparameter für eine bestimmte E/A-Anforderung in einer STARTIO_PERFORMANCE_PARAMETERS-Struktur. |
StorPortInitialize | Initialisiert die Porttreiberparameter und Erweiterungsdaten. StorPortInitilize speichert auch die Adapterinformationen, die vom Miniporttreiber bereitgestellt werden. |
StorPortInitializePerfOpts | Initialisiert die Leistungsoptimierungen, die sowohl der Miniporttreiber als auch der Storport-Treiber unterstützen, mithilfe einer PERF_CONFIGURATION_DATA-Struktur. |
StorPortSetAdapterBusType | Wird verwendet, um den BusType des Adapters abhängig von seiner aktuellen Konfiguration anzupassen. Wenn Sie busType mit dieser Routine festlegen, können Sie die globale Eigenschaft überschreiben, die im Miniport-INF festgelegt ist, ohne den Treiber erneut installieren zu müssen. Dies ist nützlich für Szenarien wie RAID-Unterstützung oder Unterstützung für mehrere Adapter mit einem anderen Bustyp. |
StorPortSetBusDataByOffset | Schreibt busspezifische Konfigurationsinformationen. |
StorPortSetDeviceQueueDepth | Legt die maximale Tiefe der Gerätewarteschlange für das angegebene Gerät fest. |
StorPortSetPowerSettingNotificationGuids | Ermöglicht einem Miniport das Empfangen von Energieeinstellungsbenachrichtigungen. Der Miniport registriert ein Array von GUIDs, die die Energieeinstellungen identifizieren, für die Stromwechselbenachrichtigungen empfangen werden sollen. |
StorPortSetUnitAttributes | Registriert die Energieattribute eines Speichergeräts beim Storport-Treiber. |
Unterbrechungsunterstützungsroutinen
Der Storport-Treiber stellt die folgenden Interruptunterstützungsroutinen bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortGetMSIInfo | Ruft die MSI-Informationen (Message Signaled Interrupt) für die angegebene Nachricht ab. |
StorPortSynchronizeAccess | Ermöglicht synchronisierten Zugriff auf die Geräteerweiterung eines Miniporttreibers. |
StorPortInitializeDpc | Initialisiert einen StorPort-Aufruf der verzögerten Prozedur (DPC). |
StorPortIssueDpc | Gibt einen Storport-DPC aus. |
StorPortStallExecution | Stagniert den Miniport-Fahrer. |
Sperren von Supportroutinen
Der Storport-Treiber bietet die folgenden Sperrunterstützungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortAcquireMSISpinLock | Ruft die Msi-Drehsperre (Message Signaled Interrupt) ab, die der angegebenen Nachricht zugeordnet ist. |
StorPortAcquireSpinLock | Ruft die angegebene Drehsperre ab. |
StorPortReleaseMSISpinLock | Gibt eine zuvor erworbene MSI-Drehsperre für die angegebene Nachricht frei. |
StorPortReleaseSpinLock | Gibt einen von StorPortAcquireSpinLock erworbenen Spinlock frei. |
Unterstützungsroutinen für die Speicherverwaltung
Der Storport-Treiber bietet die folgenden Speicherverwaltungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortAllocateContiguousMemorySpecifyCacheNode | Ordnet einen Bereich von physisch zusammenhängendem, nicht zwischengespeichertem, nicht auslagerten Arbeitsspeicher zu. |
StorPortAllocateMdl | Weist eine MDL zu, um den angegebenen nicht ausgelagerten Poolspeicher zu beschreiben. |
StorPortAllocatePool | Ordnet einen Block mit nicht zusammenhängendem, nicht ausgelagertem Poolspeicher zu. |
StorPortAllocateRegistryBuffer | Weist einen Puffer zu, den ein Miniport zum Lesen und Schreiben von Registrierungsdaten verwenden kann. |
StorPortBuildMdlForNonPagedPool | Updates die MDL, um den zugeordneten Nicht-Auslagerungsspeicher zu beschreiben. |
StorPortConvertUlongToPhysicalAddress | Konvertiert eine nicht signierte long-Adresse in eine physische Adresse. |
StorPortConvertPhysicalAddressToULong64 | Konvertiert eine physische Adresse in einen ULONG64 Wert. |
StorPortFreeMdl | Gibt eine Arbeitsspeicherdeskriptorliste (Memory Descriptor List, MDL) frei, die nicht ausgelagerten Poolspeicher beschreibt. |
StorPortFreeContiguousMemorySpecifyCache | Gibt die Zuordnung eines Bereichs von nicht zwischengespeichertem Arbeitsspeicher im nicht ausgelagerten Teil des Systemadressraums auf. |
StorPortFreePool | Gibt einen Speicherblock frei, der zuvor durch einen Aufruf der StorPortAllocatePool-Routine zugeordnet wurde. |
StorPortFreeRegistryBuffer | Gibt den Puffer frei, der zum Speichern von Registrierungsdaten zugewiesen wurde. |
StorPortGetDataInBufferMdl | Gibt eine MDL zurück, die dem Eingabedatenpuffer eines SCSI-Anforderungsblocks (SRB) zugeordnet ist. |
StorPortGetDataInBufferScatterGatherList | Gibt die Punktsammlungsliste zurück, die dem Eingabedatenpuffer eines SCSI-Anforderungsblocks (SRB) zugeordnet ist. |
StorPortGetDataInBufferSystemAddress | Gibt die Systemadresse für den Eingabedatenpuffer eines SCSI-Anforderungsblocks (SRB) zurück. |
StorPortGetOriginalMdl | Gibt die MDL zurück, die dem angegebenen SRB zugeordnet ist. |
StorPortGetVirtualAddress | Ruft eine virtuelle Adresse ab, die der angegebenen physischen Adresse zugeordnet ist. |
StorPortGetPhysicalAddress | Konvertiert einen angegebenen virtuellen Adressbereich in einen physischen Adressbereich für einen DMA-Vorgang. |
StorPortGetSystemAddress | Gibt eine virtuelle Adresse im Systembereich für den Datenpuffer des angegebenen SCSI-Anforderungsblocks (SRB) zurück. |
StorPortGetUncachedExtension | Ordnet einen nicht zwischengespeicherten gemeinsamen Puffer zu, der von der CPU und dem Gerät gemeinsam verwendet werden soll. |
StorPortMarkDumpMemory | Ein Miniport sollte arbeitsspeichermarkieren, der für die Speicherabbilddatei oder die Ruhezustandsdatei verwendet wird. Markierter Arbeitsspeicher wird beibehalten und bleibt nach dem Fortsetzen aus dem Ruhezustand gültig. Der zu markierende Arbeitsspeicher wird durch eine Adresse und eine Bereichslänge in einem Aufruf von StorPortMarkDumpMemory angegeben. |
StorPortMoveMemory | Kopiert Arbeitsspeicher aus einem Puffer in einen anderen. |
Benachrichtigungsunterstützungsroutinen
Der Storport-Treiber stellt die folgenden Benachrichtigungsunterstützungsroutinen bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortAsyncNotificationDetected | Benachrichtigt den Storport-Treiber über ein Speichergerät status Änderungsereignis. |
StorPortNotification | Benachrichtigt den Storport-Fahrer über bestimmte Ereignisse und Bedingungen. |
StorPortStateChangeDetected | Benachrichtigt den Storport-Porttreiber über eine Zustandsänderung für eine LUN (Logical Unit Number), einen HBA-Port (Host Bus Adapter) oder ein Zielgerät. |
E/A-Unterstützungsroutinen für Port und Registrierung
Der Storport-Treiber stellt die folgenden E/A-Unterstützungsroutinen für Port und Registrierung bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortGetDeviceBase | Ordnet eine E/A-Adresse dem Systemadressraum zu. |
StorPortFreeDeviceBase | Gibt einen Bereich von Geräte-E/A-Arbeitsspeicher frei, der von StorPortGetDeviceBase zugeordnet wurde. |
StorPortReadPortBufferUchar | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadPortBufferUlong | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadPortBufferUshort | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadPortUchar | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadPortUlong | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadPortUshort | Liest einen Wert aus einer angegebenen Portadresse. |
StorPortReadRegisterBufferUchar | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortReadRegisterBufferUlong | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortReadRegisterBufferUlong64 | Liest eine Reihe von ULONG64-Werten aus der angegebenen 64-Bit-Registeradresse in einen Puffer. |
StorPortReadRegisterBufferUshort | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortReadRegisterUchar | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortReadRegisterUlong | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortReadRegisterUlong64 | Liest einen 64-Bit-Wert aus einer angegebenen 64-Bit-Registeradresse. |
StorPortReadRegisterUshort | Liest einen Wert aus einer angegebenen Registeradresse. |
StorPortValidateRange | Bestimmt, ob ein angegebener Bereich von E/A-Adressen von einem anderen Adapter verwendet wird. Diese Routine ist in Windows NT 4.0 und höheren Betriebssystemen veraltet. |
StorPortWritePortBufferUchar | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWritePortBufferUlong | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWritePortBufferUshort | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWritePortUchar | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWritePortUlong | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWritePortUshort | Schreibt einen Wert in eine angegebene Registeradresse. |
StorPortWriteRegisterBufferUchar | Überträgt eine bestimmte Anzahl von Bytes ohne Vorzeichen aus einem Puffer an den HBA. |
StorPortWriteRegisterBufferUlong | Überträgt eine bestimmte Anzahl von ULONG-Werten aus einem Puffer an den HBA. |
StorPortWriteRegisterBufferUlong64 | Schreibt eine Reihe von ULONG64-Werten aus einer angegebenen 64-Bit-Registeradresse. |
StorPortWriteRegisterBufferUshort | Überträgt eine bestimmte Anzahl von USHORT-Werten aus einem Puffer an den HBA. |
StorPortWriteRegisterUchar | Überträgt eine bestimmte Anzahl von Zeichenwerten aus einem Puffer an die angegebene HBA-Registeradresse. |
StorPortWriteRegisterUlong | Überträgt einen ULONG-Wert an die angegebene HBA-Registeradresse. |
StorPortWriteRegisterUlong64 | Schreibt einen ULONG64 Wert in die angegebene Registeradresse. |
StorPortWriteRegisterUshort | Überträgt einen ULONG-Wert an die angegebene HBA-Registeradresse. |
Unterstützungsroutinen für die Laufzeitenergieverwaltung
Der Storport-Treiber bietet die folgenden Laufzeit-Energieverwaltungsroutinen.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortInitializePoFxPower | Registriert ein Speichergerät beim Power Management Framework (PoFx). |
StorPortPoFxActivateComponent | Erhöht die Anzahl der Aktivierungsverweis für die angegebene Komponente eines Speichergeräts. |
StorPortPoFxIdleComponent | Verringert die Anzahl der Aktivierungsverweis einer angegebenen Komponente eines Speichergeräts. |
StorPortPoFxPowerControl | Sendet eine Energiesteuerungsanforderung an das Power Management Framework (PoFx) zur Weiterleitung an das Power Engine Plug-In (PEP). |
StorPortPoFxSetComponentLatency | Gibt die maximale Latenz an, die beim Übergang von der Leerlaufbedingung zur aktiven Bedingung in der angegebenen Speichergerätekomponente toleriert werden kann. |
StorPortPoFxSetComponentResidency | Legt die geschätzte Zeit fest, wie lange eine Speichergerätekomponente wahrscheinlich im Leerlauf verbleibt, nachdem die Komponente in den Leerlaufzustand wechselt. |
Timerunterstützungsroutinen
Der Storport-Treiber stellt die folgenden Timerunterstützungsroutinen bereit.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
StorPortFreeTimer | Gibt ein Storport-Zeitgeberkontextobjekt frei, das zuvor von der StorPortInitializeTimer-Routine erstellt wurde. |
StorPortInitializeTimer | Erstellt ein Storport-Zeitgeberkontextobjekt. |
StorPortRequestTimer | Plant ein Rückrufereignis für ein Storport-Zeitgeberkontextobjekt. |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für