Процедуры поддержки драйверов Storport
Эта страница классифицирует некоторые подпрограммы поддержки, предоставляемые мини-портами системным драйвером Storport. Полный список см. в storport.h.
Список подпрограмм минипорта драйвера Storport см. в статье Storport Miniport Driver Routines.
Подпрограммы поддержки прямого доступа к памяти
Драйвер Storport предоставляет следующие процедуры прямого доступа к памяти (DMA).
Маршрут | Description |
---|---|
StorPortBuildScatterGatherList | Создает список точечной и сборной для указанного буфера данных. |
StorPortGetScatterGatherList | Извлекает связанный список точечной или сборной для указанного блока запросов SCSI (SRB). |
StorPortPutScatterGatherList | Освобождает все ресурсы, связанные с списком точечной и сборной, который ранее был создан вызовом подпрограммы StorPortBuildScatterGatherList . |
Общие подпрограммы поддержки
Storport предоставляет следующие общие подпрограммы поддержки.
Маршрут | Description |
---|---|
StorPortDebugPrint | Выводит строку отладки в отладчик ядра, если отладчик подключен. |
StorPortEtwEvent2 | Публикует событие трассировки событий для Windows (ETW) в канале трассировки хранилища. Минипорт может записывать два параметра ETW общего назначения. Параметры ETW выражаются как две пары "имя-значение". |
StorPortEtwEvent4 | Публикует событие ETW в канале трассировки хранилища. Минипорт может записывать четыре параметра ETW общего назначения. Параметры ETW выражаются как четыре пары "имя-значение". |
StorPortEtwEvent8 | Публикует событие ETW в канале трассировки хранилища. Минипорт может записывать восемь параметров etw общего назначения. Параметры ETW выражаются как восемь пар "имя-значение". |
StorPortGetActivityIdSrb | Извлекает идентификатор действия ETW, связанный с блоком запроса. |
StorPortGetDeviceObjects | Возвращает объекты устройства, связанные с стеком устройств адаптера. Возвращаемые объекты устройства — это функциональные и физические объекты устройства адаптера и объекта устройства, к которому подключен функциональный объект устройства. |
StorPortGetSystemPortNumber | Извлекает назначенный системой номер порта для адаптера хранилища. |
StorPortInitializeSListHead | Инициализирует голову связанного списка, управляемого Storport. |
StorPortInterlockedFlushSList | Удаляет все элементы из связанного списка, управляемого Storport. Доступ к списку синхронизирован в многопроцессорной системе |
StorPortInterlockedPopEntrySList | Удаляет элемент из передней части связанного списка, управляемого Storport. Доступ к списку синхронизируется в многопроцессорной системе. |
StorPortInterlockedPushEntrySList | Вставляет элемент перед списком, управляемым Storport. Доступ к списку синхронизируется в многопроцессорной системе. |
StorPortInvokeAcpiMethod | Выполняет метод ACPI для устройства хранения. |
StorPortIsCurrentOsInstallationUpgrade | Проверяет, является ли текущая установка Windows обновлением из предыдущей версии или нет. |
StorPortIsDeviceOperationAllowed | Позволяет минипорту определить, разрешены ли операции для определенного класса управления устройствами. |
StorPortLogError | Уведомляет драйвер порта о возникновении ошибки. |
StorPortLogTelemetry | Регистрирует событие телеметрии мини-порта для диагностики или сбора полезных сведений. |
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 предоставляет следующие подпрограммы поддержки обработки запросов ввода-вывода.
Маршрут | Description |
---|---|
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 предоставляет следующие подпрограммы поддержки инициализации.
Маршрут | Description |
---|---|
StorPortEnablePassiveInitialization | Позволяет подпрограмме обратного вызова минипорта HwStorPassiveInitializeRoutine выполняться в PASSIVE_LEVEL во время инициализации минипорта. |
StorPortGetActiveGroupCount | Возвращает количество групп процессоров, присутствующих в системе. |
StorPortGetActiveNodeCount | Возвращает количество узлов, присутствующих в системе. |
StorPortGetBusData | Извлекает сведения о конфигурации для конкретной шины, необходимые для инициализации HBA. |
StorPortGetCurrentProcessorNumber | Извлекает текущий номер процессора из ядра. |
StorPortGetGroupAffinity | Создает маску активных процессоров в запрошенной группе. |
StorPortGetHighestNodeNumber | Возвращает максимально возможный номер узла в системе. |
StorPortGetLogicalProcessorRelationship | Возвращает сведения о связи для одного или нескольких указанных типов. К этим типам относятся группы, физические пакеты и узлы в системе узлов. Возвращаемые сведения включают маски сходства процессора, состоящие из логических процессоров в хост-системе. Эти логические процессоры используют указанные типы связей. |
StorPortGetLogicalUnit | Возвращает указатель на область хранилища мини-порта для каждого логического блока хранения. |
StorPortGetNodeAffinity | Создает маску активных процессоров в запрошенном узле доступа к памяти (NUMA). |
StorPortGetStartIoPerfParams | Помещает параметры производительности для заданного запроса ввода-вывода в структуру STARTIO_PERFORMANCE_PARAMETERS. |
StorPortInitialize | Инициализирует параметры драйвера портов и данные расширения. StorPortInitilize также сохраняет сведения о адаптере, предоставленные драйвером мини-порта. |
StorPortInitializePerfOpts | Инициализирует оптимизации производительности, поддерживаемые как драйвером минипорта, так и драйвером Storport с помощью структуры PERF_CONFIGURATION_DATA. |
StorPortSetAdapterBusType | Используется для настройки BusType адаптера в зависимости от текущей конфигурации. Настройка BusType с помощью этой подпрограммы позволяет переопределить глобальный набор свойств, заданных в минипорте INF, не переустановив драйвер. Эта возможность полезна для таких сценариев, как поддержка RAID или поддержка нескольких адаптеров с другим типом шины. |
StorPortSetSetBusDataByOffset | Записывает сведения о конфигурации конкретной шины. |
StorPortSetDeviceQueueDepth | Задает максимальную глубину очереди устройства для указанного устройства. |
StorPortSetPowerSettingNotificationGuids | Позволяет минипорту получать уведомления о параметрах питания. Минипорт регистрирует массив графических идентификаторов, определяющих параметры питания для получения уведомлений об изменении питания. |
StorPortSetUnitAttributes | Регистрирует атрибуты питания устройства единицы хранения с помощью драйвера Storport. |
Подпрограммы поддержки прерываний
Драйвер Storport предоставляет следующие подпрограммы поддержки прерываний.
Маршрут | Description |
---|---|
StorPortGetMSIInfo | Извлекает сведения о сигнальных прерываниях сообщения (MSI) для указанного сообщения. |
StorPortSynchronizeAccess | Предоставляет синхронизированный доступ к расширению устройства минипорта драйвера. |
StorPortInitializeDpc | Инициализирует отложенный вызов процедуры StorPort (DPC.) |
StorPortIssueDpc | Выдает DPC Storport. |
StorPortStallExecution | Застопоряет минипорт водителя. |
Блокирование подпрограмм поддержки
Драйвер Storport предоставляет следующие процедуры поддержки блокировки.
Маршрут | Description |
---|---|
StorPortAcquireMSISpinLock | Получает сигнальную блокировку прерывания (MSI), связанную с указанным сообщением. |
StorPortAcquireSpinLock | Получает указанную блокировку спина. |
StorPortReleaseMSISpinLock | Освобождает ранее полученную блокировку спина MSI для указанного сообщения. |
StorPortReleaseSpinLock | Освобождает спинлок, приобретенный StorPortAcquireSpinLock. |
Подпрограммы поддержки управления памятью
Драйвер Storport предоставляет следующие процедуры поддержки управления памятью.
Маршрут | Description |
---|---|
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 предоставляет следующие подпрограммы поддержки уведомлений.
Маршрут | Description |
---|---|
StorPortAsyncNotificationDetected | Уведомляет драйвер Storport об изменении состояния устройства хранилища. |
StorPortNotification | Уведомляет драйвер Storport о определенных событиях и условиях. |
StorPortStateChangeDetected | Уведомляет драйвер порта Storport об изменении состояния для логического номера единиц (LUN), порта адаптера шины узла (HBA) или целевого устройства. |
Процедуры поддержки портов и операций ввода-вывода
Драйвер Storport предоставляет следующие процедуры поддержки ввода-вывода и порта.
Маршрут | Description |
---|---|
StorPortGetDeviceBase | Сопоставляет адрес ввода-вывода с адресным пространством системы. |
StorPortFreeDeviceBase | Освобождает диапазон памяти ввода-вывода устройства, сопоставленной ранее StorPortGetDeviceBase . |
StorPortPortPortBufferUchar | Считывает значение из указанного адреса порта |
StorPortReadPortBufferUlong | Считывает значение из указанного адреса порта. |
StorPortPortBufferUshort | Считывает значение из указанного адреса порта. |
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 предоставляет следующие подпрограммы поддержки управления питанием среды выполнения.
Маршрут | Description |
---|---|
StorPortInitializePoFxPower | Регистрирует устройство хранения с помощью платформы управления питанием (PoFx). |
StorPortPoFxActivateComponent | Увеличивает количество ссылок на активацию на указанный компонент устройства хранения. |
StorPortPoFxIdleComponent | Уменьшает количество ссылок на активацию указанного компонента устройства хранения. |
StorPortPoFxPowerControl | Отправляет запрос на управление питанием в платформу управления питанием (PoFx) для пересылки в подключаемый модуль двигателя питания (PEP). |
StorPortPoFxSetComponentLatency | Указывает максимальную задержку, которую можно допускать при переходе от простоя к активному в указанном компоненте устройства хранилища. |
StorPortPoFxSetComponentResidency | Задает предполагаемое время в течение длительного времени, когда компонент устройства хранения, скорее всего, останется бездействующий после того, как компонент введет условие простоя. |
Подпрограммы поддержки таймера
Драйвер Storport предоставляет следующие подпрограммы поддержки таймера.
Маршрут | Description |
---|---|
StorPortFreeTimer | Освобождает объект контекста таймера Storport, созданный ранее подпрограммой StorPortInitializeTimer . |
StorPortInitializeTimer | Создает объект контекста таймера Storport. |
StorPortRequestTimer | Планирует событие обратного вызова для объекта контекста таймера Storport. |