Процедуры поддержки драйверов Storport

На этой странице приведены категории некоторых процедур поддержки, предоставляемых минипортам драйвером Storport, предоставляемым системой. Полный список см. в разделе storport.h .

Список процедур для драйверов Storport см. в разделе Процедуры драйвера для порта Storport Miniport.

Процедуры поддержки прямого доступа к памяти

Драйвер Storport предоставляет следующие процедуры поддержки прямого доступа к памяти (DMA).

Подпрограмма Описание
StorPortBuildScatterGatherList Создает список точечной и сборной для указанного буфера данных.
StorPortGetScatterGatherList Извлекает связанный список точечной и сборной для указанного блока запросов SCSI (SRB).
StorPortPutScatterGatherList Освобождает все ресурсы, связанные со списком точечной и сборной, который ранее был создан вызовом процедуры StorPortBuildScatterGatherList .

Общие процедуры поддержки

Storport предоставляет следующие общие процедуры поддержки.

Подпрограмма Описание
StorPortDebugPrint Выводит строку отладки в отладчик ядра, если отладчик подключен.
StorPortEtwEvent2 Публикует событие трассировки событий Windows (ETW) в канале трассировки хранилища. Мини-порт может записывать в журнал два параметра трассировки событий Windows общего назначения. Параметры трассировки событий Windows выражаются в виде двух пар "имя-значение".
StorPortEtwEvent4 Публикует событие трассировки событий Windows в канале трассировки хранилища. Мини-порт может записывать в журнал четыре параметра трассировки событий Windows общего назначения. Параметры трассировки событий Windows выражаются в виде четырех пар "имя-значение".
StorPortEtwEvent8 Публикует событие трассировки событий Windows в канале трассировки хранилища. Мини-порт может записывать в журнал восемь параметров трассировки событий Windows общего назначения. Параметры трассировки событий Windows выражаются в виде восьми пар "имя-значение".
StorPortGetActivityIdSrb Извлекает идентификатор действия ETW, связанный с блоком запроса.
StorPortGetDeviceObjects Возвращает объекты устройства, связанные со стеком устройств адаптера. Возвращаемые объекты устройства — это функциональные и физические объекты адаптера и объект устройства, к которому подключен объект функционального устройства.
StorPortGetSystemPortNumber Извлекает назначенный системой номер порта для адаптера хранилища.
StorPortInitializeSListHead Инициализирует главу единого связанного списка, управляемого Storport.
StorPortInterlockedFlushsList Удаляет все элементы из единого связанного списка, управляемого Storport. Доступ к списку синхронизируется в многопроцессорной системе
StorPortInterlockedPopEntrySList Удаляет элемент из передней части единого связанного списка, управляемого Storport. Доступ к списку синхронизируется в многопроцессорной системе.
StorPortInterlockedPushEntrySList Вставляет элемент в начало списка, управляемого Storport. Доступ к списку синхронизируется в многопроцессорной системе.
StorPortInvokeAcpiMethod Выполняет метод ACPI для запоминающего устройства.
StorPortIsCurrentOsInstallationUpgrade Проверяет, является ли текущая установка Windows обновлением предыдущей версии.
StorPortIsDeviceOperationAllowed Позволяет минипорту определить, разрешены ли операции для определенного класса управления устройствами.
StorPortLogError Уведомляет драйвер порта о том, что произошла ошибка.
StorPortLogSystemEvent Предоставляет драйверам минипорта полный доступ к возможностям средства событий ядра Windows, позволяя драйверам минипорта создавать записи журнала событий, которые действительно полезны при устранении неполадок с хранилищем. Он предоставляет лучшую альтернативу StorPortLogError.
StorPortQueryDepthSList Извлекает количество записей в отдельно связанном списке, управляемом Storport.
StorPortQueryPerformanceCounter Запрашивает и возвращает текущее значение счетчика производительности системы.
StorPortQuerySystemTime Получает текущее системное время.
StorPortRegistryRead Считывает данные реестра для указанного устройства и значения.
StorPortRegistryReadAdapterKey Считывает разделы адаптера реестра оборудования или устройства, расположенные в реестре по адресу HKLM/CurrentControlSet/Enum/<Instance path>/DeviceParameters/....
StorPortRegistryWriteAdapterKey Записывает разделы адаптера реестра оборудования или устройства, расположенные в реестре по адресу HKLM/CurrentControlSet/Enum/<Instance path>/DeviceParameters/....
StorPortRegistryWrite Преобразует данные реестра, содержащиеся в указанном буфере, из ASCII в Юникод, а затем записывает эти данные в хранилище драйвера мини-порта на уровне HBA.

Процедуры поддержки обработки запросов ввода-вывода

Storport предоставляет следующие процедуры поддержки обработки запросов ввода-вывода.

Подпрограмма Описание
StorPortBusy Уведомляет драйвер порта о том, что адаптер в настоящее время занят, обрабатывая невыполненные запросы.
StorPortCompleteRequest Выполняет все незавершенные запросы, устанавливая для состояния SRB значение SrbStatus.
StorPortCompleteServiceIrp Вызывается драйвером виртуального мини-порта Storport, когда ему необходимо выполнить запрос, полученный в процедуре обратного вызова HwStorProcessServiceRequest.
StorPortDeviceBusy Уведомляет драйвер порта о том, что указанная логическая единица в настоящее время занята, обрабатывая невыполненные запросы.
StorPortDeviceReady Уведомляет драйвер порта о том, что указанная логическая единица готова к обработке новых запросов.
StorPortFreeWorker Освобождает рабочий элемент Storport, ранее выделенный подпрограммой StorPortInitializeWorker .
StorPortGetRequestInfo Извлекает сведения о запросах ввода-вывода, связанные с блоком запросов SCSI (SRB), и возвращает их в STOR_REQUEST_INFO структуре.
StorPortInitializeWorker Создает новый рабочий элемент Storport, который выполняется в системном рабочем потоке.
StorPortQueueWorkItem Планирует выполнение рабочего элемента Storport в контексте системного рабочего потока.
StorPortPause Приостанавливает адаптер на указанный период времени.
StorPortPauseDevice Приостанавливает определенное устройство логического устройства на указанный период времени.
StorPortReady Уведомляет драйвер порта о том, что адаптер больше не занят.
StorPortResume Возобновляет работу приостановленного адаптера.
StorPortResumeDevice Возобновляет ранее приостановленную логическую единицу.

Процедуры поддержки инициализации

Драйвер Storport предоставляет следующие процедуры поддержки инициализации.

Подпрограмма Описание
StorPortEnablePassiveInitialization Позволяет подпрограмме обратного вызова HwStorPassiveInitializeRoutine мини-порта выполняться на PASSIVE_LEVEL во время инициализации минипорта.
StorPortGetActiveGroupCount Возвращает количество групп процессоров, присутствующих в системе.
StorPortGetActiveNodeCount Возвращает количество узлов, присутствующих в системе.
StorPortGetBusData Извлекает сведения о конфигурации шины, необходимые для инициализации адаптера шины.
StorPortGetCurrentProcessorNumber Извлекает текущий номер процессора из ядра.
StorPortGetGroupAffinity Создает маску активных процессоров в запрошенной группе.
StorPortGetHighestNodeNumber Возвращает максимально возможный номер узла в системе.
StorPortGetLogicalProcessorRelationship Возвращает сведения о связи для одного или нескольких указанных типов. К этим типам относятся группы, физические пакеты и узлы в системе узла. Возвращаемые сведения включают маски сходства процессоров, состоящие из логических процессоров в системе узла. Эти логические процессоры совместно используют указанные типы связей.
StorPortGetLogicalUnit Возвращает указатель на область хранения для каждого логического устройства драйвера мини-порта.
StorPortGetNodeAffinity Создает маску активных процессоров в запрошенном узле неоднородного доступа к памяти (NUMA).
StorPortGetStartIoPerfParams Places параметры производительности для заданного запроса ввода-вывода в STARTIO_PERFORMANCE_PARAMETERS структуре.
StorPortInitialize Инициализирует параметры драйвера порта и данные расширения. StorPortInitilize также сохраняет сведения об адаптере, предоставленные драйвером мини-порта.
StorPortInitializePerfOpts Инициализирует оптимизации производительности, поддерживаемые драйвером мини-порта и драйвером Storport, используя структуру PERF_CONFIGURATION_DATA.
StorPortSetAdapterBusType Используется для настройки типа busType адаптера в зависимости от его текущей конфигурации. Задание BusType с помощью этой подпрограммы позволит переопределить глобальное свойство, заданное в мини-порт INF без необходимости повторной установки драйвера. Это полезно для таких сценариев, как поддержка RAID или поддержка нескольких адаптеров с другим типом шины.
StorPortSetBusDataByOffset Записывает сведения о конфигурации, относящиеся к шине.
StorPortSetDeviceQueueDepth Задает максимальную глубину очереди устройства для указанного устройства.
StorPortSetPowerSettingNotificationGuids Позволяет минипорту получать уведомления о параметрах питания. Мини-порт регистрирует массив идентификаторов GUID, которые определяют параметры питания для получения уведомлений об изменении питания.
StorPortSetUnitAttributes Регистрирует атрибуты питания устройства запоминающего устройства с драйвером Storport.

Подпрограммы поддержки прерываний

Драйвер Storport предоставляет следующие процедуры поддержки прерываний.

Подпрограмма Описание
StorPortGetMSIInfo Извлекает сведения о прерывании с сигналом сообщения (MSI) для указанного сообщения.
StorPortSynchronizeAccess Предоставляет синхронизированный доступ к расширению устройства драйвера мини-порта.
StorPortInitializeDpc Инициализирует отложенный вызов процедуры StorPort (DPC).
StorPortIssueDpc Выдает DPC Storport.
StorPortStallExecution Стойло водителю минипорта.

Блокирование процедур поддержки

Драйвер Storport предоставляет следующие процедуры поддержки блокировки.

Подпрограмма Описание
StorPortAcquireMSISpinLock Получает блокировку спина с сигналом о сигнале о сообщении (MSI), связанную с указанным сообщением.
StorPortAcquireSpinLock Получает указанную блокировку спина.
StorPortReleaseMSISpinLock Освобождает ранее полученную блокировку спина MSI для указанного сообщения.
StorPortReleaseSpinLock Освобождает спин-блокировку, полученную storPortAcquireSpinLock.

Процедуры поддержки управления памятью

Драйвер Storport предоставляет следующие процедуры поддержки управления памятью.

Подпрограмма Описание
StorPortAllocateContiguousMemorySpecifyCacheNode Выделяет диапазон физически непрерывной несмеченной памяти без кэширования.
StorPortAllocateMdl Выделяет MDL для описания заданной памяти нестраничного пула.
StorPortAllocatePool Выделяет блок несмежной памяти пула без страниц.
StorPortAllocateRegistryBuffer Выделяет буфер, который мини-порт может использовать для чтения и записи данных реестра.
StorPortBuildMdlForNonPagedPool Обновления MDL, чтобы описать связанную память без страниц.
StorPortConvertUlongToPhysicalAddress Преобразует длинный адрес без знака в физический.
StorPortConvertPhysicalAddressToULong64 Преобразует физический адрес в значение ULONG64.
StorPortFreeMdl Освобождает список дескрипторов памяти (MDL), описывающий память нестраничного пула.
StorPortFreeContiguousMemorySpecifyCache Освобождает диапазон несеченной памяти в несмежной части системного адресного пространства.
StorPortFreePool Освобождает блок памяти, ранее выделенный вызовом процедуры StorPortAllocatePool .
StorPortFreeRegistryBuffer Освобождает буфер, выделенный для хранения данных реестра.
StorPortGetDataInBufferMdl Возвращает MDL, связанный с буфером входных данных блока запросов SCSI (SRB).
StorPortGetDataInBufferScatterGatherList Возвращает список точечного сбора, связанный с буфером входных данных блока запросов SCSI (SRB).
StorPortGetDataInBufferSystemAddress Возвращает системный адрес для буфера входных данных блока запросов SCSI (SRB).
StorPortGetOriginalMdl Возвращает MDL, связанный с заданным SRB.
StorPortGetVirtualAddress Получает виртуальный адрес, который сопоставляется с указанным физическим адресом.
StorPortGetPhysicalAddress Преобразует заданный диапазон виртуальных адресов в физический диапазон адресов для операции DMA.
StorPortGetSystemAddress Возвращает виртуальный адрес в системном пространстве для буфера данных указанного блока запросов SCSI (SRB).
StorPortGetUncachedExtension Выделяет общий буфер без кэширования, который будет совместно использоваться ЦП и устройством.
StorPortMarkDumpMemory Мини-порт должен помечать память, используемую для файла дампа или файла гибернации. Помеченная память сохраняется и остается действительной после возобновления операции гибернации. Память для пометки указывается адресом и длиной диапазона в вызове StorPortMarkDumpMemory.
StorPortMoveMemory Копирует память из одного буфера в другой.

Процедуры поддержки уведомлений

Драйвер Storport предоставляет следующие процедуры поддержки уведомлений.

Подпрограмма Описание
StorPortAsyncNotificationDetected Уведомляет драйвер Storport о событии изменения состояния устройства хранения.
StorPortNotification Уведомляет драйвер Storport об определенных событиях и условиях.
StorPortStateChangeDetected Уведомляет драйвер порта Storport об изменении состояния для номера логического устройства (LUN), порта адаптера шины узла (HBA) или целевого устройства.

Процедуры поддержки переноса и регистрации операций ввода-вывода

Драйвер Storport предоставляет следующие процедуры поддержки портов и регистрации операций ввода-вывода.

Подпрограмма Описание
StorPortGetDeviceBase Сопоставляет адрес ввода-вывода с адресным пространством системы.
StorPortFreeDeviceBase Освобождает диапазон памяти ввода-вывода устройства, сопоставленный StorPortGetDeviceBase.
StorPortReadPortBufferUchar Считывает значение из указанного адреса порта.
StorPortReadPortBufferUlong Считывает значение из указанного адреса порта.
StorPortReadPortBufferUshort Считывает значение из указанного адреса порта.
StorPortReadPortUchar Считывает значение из указанного адреса порта.
StorPortReadPortUlong Считывает значение из указанного адреса порта.
StorPortReadPortUshort Считывает значение из указанного адреса порта.
StorPortReadRegisterBufferUchar Считывает значение из указанного адреса регистра.
StorPortReadRegisterBufferUlong Считывает значение из указанного адреса регистра.
StorPortReadRegisterBufferUlong64 Считывает несколько ULONG64 значений из указанного 64-разрядного адреса регистра в буфер.
StorPortReadRegisterBufferUshort Считывает значение из указанного адреса регистра.
StorPortReadRegisterUchar Считывает значение из указанного адреса регистра.
StorPortReadRegisterUlong Считывает значение из указанного адреса регистра.
StorPortReadRegisterUlong64 Считывает 64-разрядное значение из указанного 64-разрядного адреса регистра.
StorPortReadRegisterUshort Считывает значение из указанного адреса регистра.
StorPortValidateRange Определяет, используется ли заданный диапазон адресов ввода-вывода другим адаптером. Эта подпрограмма устарела в операционных системах Windows NT 4.0 и более поздних версий.
StorPortWritePortBufferUchar Записывает значение в указанный адрес регистра.
StorPortWritePortBufferUlong Записывает значение в указанный адрес регистра.
StorPortWritePortBufferUshort Записывает значение в указанный адрес регистра.
StorPortWritePortUchar Записывает значение в указанный адрес регистра.
StorPortWritePortUlong Записывает значение в указанный адрес регистра.
StorPortWritePortUshort Записывает значение в указанный адрес регистра.
StorPortWriteRegisterBufferUchar Передает заданное количество неподписанных байтов из буфера в HBA.
StorPortWriteRegisterBufferUlong Передает заданное количество значений ULONG из буфера в HBA.
StorPortWriteRegisterBufferUlong64 Записывает несколько ULONG64 значений из указанного 64-разрядного адреса регистра.
StorPortWriteRegisterBufferUshort Передает заданное количество значений USHORT из буфера в HBA.
StorPortWriteRegisterUchar Передает заданное количество символьных значений из буфера в указанный адрес регистра HBA.
StorPortWriteRegisterUlong Передает значение ULONG на указанный адрес регистрации HBA.
StorPortWriteRegisterUlong64 Записывает значение ULONG64 в указанный адрес регистра.
StorPortWriteRegisterUshort Передает значение ULONG на указанный адрес регистрации HBA.

Процедуры поддержки управления питанием среды выполнения

Драйвер Storport предоставляет следующие процедуры поддержки управления питанием среды выполнения.

Подпрограмма Описание
StorPortInitializePoFxPower Регистрирует запоминающее устройство с помощью платформы управления питанием (PoFx).
StorPortPoFxActivateComponent Увеличивает число ссылок активации для указанного компонента запоминающего устройства.
StorPortPoFxIdleComponent Уменьшает число ссылок активации указанного компонента запоминающего устройства.
StorPortPoFxPowerControl Отправляет запрос на управление питанием в платформу управления питанием (PoFx) для пересылки в подключаемый модуль подсистемы питания (PEP).
StorPortPoFxSetComponentLatency Указывает максимальную задержку, которая может быть допустима при переходе от условия простоя к активному условию в указанном компоненте запоминающего устройства.
StorPortPoFxSetComponentResidency Задает предполагаемое время, в течение сколько времени компонент запоминающее устройство, скорее всего, будет оставаться в состоянии простоя после того, как компонент перейдет в состояние простоя.

Процедуры поддержки таймера

Драйвер Storport предоставляет следующие процедуры поддержки таймера.

Подпрограмма Описание
StorPortFreeTimer Освобождает объект контекста таймера Storport, ранее созданный подпрограммой StorPortInitializeTimer .
StorPortInitializeTimer Создает объект контекста таймера Storport.
StorPortRequestTimer Планирует событие обратного вызова для объекта контекста таймера Storport.