Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта страница классифицирует некоторые подпрограммы поддержки, предоставляемые мини-портами системным драйвером Storport. See storport.h for a complete list.
Список подпрограмм минипорта драйвера Storport см. в статье Storport Miniport Driver Routines.
Подпрограммы поддержки прямого доступа к памяти
Драйвер Storport предоставляет следующие процедуры прямого доступа к памяти (DMA).
| Routine | Description |
|---|---|
| StorPortBuildScatterGatherList | Создает список точечной и сборной для указанного буфера данных. |
| StorPortGetScatterGatherList | Извлекает связанный список точечной или сборной для указанного блока запросов SCSI (SRB). |
| StorPortPutScatterGatherList | Releases any resources associated with a scatter/gather list that was previously created by a call to the StorPortBuildScatterGatherList routine. |
Общие подпрограммы поддержки
Storport предоставляет следующие общие подпрограммы поддержки.
| Routine | 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, что позволяет минипорт-драйверам создавать записи журнала событий, которые действительно полезны при устранении проблем с хранилищем. It provides a better alternative to StorPortLogError. |
| StorPortQueryDepthSList | Извлекает количество записей в списке, управляемом Storport. |
| StorPortQueryPerformanceCounter | Запросы и возвращает текущее значение счетчика производительности системы. |
| StorPortQuerySystemTime | Получает текущее системное время. |
| StorPortRegistryRead | Считывает данные реестра для указанного устройства и значения. |
| StorPortRegistryReadAdapterKey | Считывает разделы адаптера аппаратного или реестра устройств, расположенные в реестре по адресу HKLM/CurrentControlSet/Enum/<Instance path>/DeviceParameters/.... |
| StorPortRegistryWriteAdapterKey | Записывает разделы адаптера аппаратного или реестра устройств, расположенные в реестре в HKLM/CurrentControlSet/Enum/<Instance path>/DeviceParameters/.... |
| StorPortRegistryWrite | Преобразует данные реестра, содержащиеся в указанном буфере из ASCII в Юникод, а затем записывает данные в область хранилища мини-порта для каждого HBA. |
Подпрограммы поддержки обработки запросов ввода-вывода
Storport предоставляет следующие подпрограммы поддержки обработки запросов ввода-вывода.
| Routine | Description |
|---|---|
| StorPortBusy | Уведомляет драйвер порта о том, что адаптер в настоящее время занят, обрабатывая невыполненные запросы. |
| StorPortCompleteRequest | Завершает все невыполненные запросы, устанавливая значение состояния SRB на SrbStatus. |
| StorPortCompleteServiceIrp | Вызывается драйвером виртуального минипорта Storport, когда он должен завершить запрос, полученный в подпрограмме обратного вызова HwStorProcessServiceRequest. |
| StorPortDeviceBusy | Уведомляет драйвер порта о том, что указанная логическая единица занята, обрабатывая невыполненные запросы. |
| StorPortDeviceReady | Уведомляет драйвер порта о том, что указанная логическая единица готова к обработке новых запросов. |
| StorPortFreeWorker | Frees a Storport work item previously allocated by the StorPortInitializeWorker routine. |
| StorPortGetRequestInfo | Извлекает сведения о запросе ввода-вывода, связанные с блоком запросов SCSI (SRB), и возвращает его в STOR_REQUEST_INFO структуре. |
| StorPortInitializeWorker | Создает новый рабочий элемент Storport, который выполняется в рабочем потоке системы. |
| StorPortQueueWorkItem | Планирует выполнение рабочего элемента Storport в контексте рабочего потока системы. |
| StorPortPause | Приостанавливает адаптер в течение указанного периода времени. |
| StorPortPauseDevice | Приостанавливает определенное логическое устройство единицы в течение указанного периода времени. |
| StorPortReady | Уведомляет драйвер порта о том, что адаптер больше не занят. |
| StorPortResume | Возобновляет приостановленный адаптер. |
| StorPortResumeDevice | Возобновляет логическую единицу, которая ранее была приостановлена. |
Подпрограммы поддержки инициализации
Драйвер Storport предоставляет следующие подпрограммы поддержки инициализации.
| Routine | Description |
|---|---|
| StorPortEnablePassiveInitialization | Позволяет подпрограмме обратного вызова минипорта HwStorPassiveInitializeRoutine выполняться в PASSIVE_LEVEL во время инициализации минипорта. |
| StorPortGetActiveGroupCount | Возвращает количество групп процессоров, присутствующих в системе. |
| StorPortGetActiveNodeCount | Возвращает количество узлов, присутствующих в системе. |
| StorPortGetBusData | Извлекает сведения о конфигурации для конкретной шины, необходимые для инициализации HBA. |
| StorPortGetCurrentProcessorNumber | Извлекает текущий номер процессора из ядра. |
| StorPortGetGroupAffinity | Создает маску активных процессоров в запрошенной группе. |
| StorPortGetHighestNodeNumber | Возвращает максимально возможный номер узла в системе. |
| StorPortGetLogicalProcessorRelationship | Возвращает сведения о связи для одного или нескольких указанных типов. К этим типам относятся группы, физические пакеты и узлы в системе узлов. Возвращаемые сведения включают маски сходства процессора, состоящие из логических процессоров в хост-системе. Эти логические процессоры используют указанные типы связей. |
| StorPortGetLogicalUnit | Возвращает указатель на область хранилища мини-порта для каждого логического блока хранения. |
| StorPortGetNodeAffinity | Создает маску активных процессоров в запрошенном узле доступа к памяти (NUMA). |
| StorPortGetStartIoPerfParams | Помещает параметры производительности для заданного запроса ввода-вывода в структуру STARTIO_PERFORMANCE_PARAMETERS. |
| StorPortInitialize | Инициализирует параметры драйвера портов и данные расширения. StorPortInitilize also saves the adapter information provided from the miniport driver. |
| StorPortInitializePerfOpts | Инициализирует оптимизации производительности, поддерживаемые как драйвером минипорта, так и драйвером Storport с помощью структуры PERF_CONFIGURATION_DATA. |
| StorPortSetAdapterBusType | Используется для настройки BusType адаптера в зависимости от текущей конфигурации. Настройка BusType с помощью этой подпрограммы позволяет переопределить глобальный набор свойств, заданных в минипорте INF, не переустановив драйвер. Эта возможность полезна для таких сценариев, как поддержка RAID или поддержка нескольких адаптеров с другим типом шины. |
| StorPortSetBusDataByOffset | Записывает сведения о конфигурации конкретной шины. |
| StorPortSetDeviceQueueDepth | Задает максимальную глубину очереди устройства для указанного устройства. |
| StorPortSetPowerSettingNotificationGuids | Позволяет минипорту получать уведомления о параметрах питания. Минипорт регистрирует массив графических идентификаторов, определяющих параметры питания для получения уведомлений об изменении питания. |
| StorPortSetUnitAttributes | Регистрирует атрибуты питания устройства единицы хранения с помощью драйвера Storport. |
Подпрограммы поддержки прерываний
Драйвер Storport предоставляет следующие подпрограммы поддержки прерываний.
| Routine | Description |
|---|---|
| StorPortGetMSIInfo | Извлекает сведения о сигнальных прерываниях сообщения (MSI) для указанного сообщения. |
| StorPortSynchronizeAccess | Предоставляет синхронизированный доступ к расширению устройства минипорта драйвера. |
| StorPortInitializeDpc | Инициализирует отложенный вызов процедуры StorPort (DPC.) |
| StorPortIssueDpc | Выдает DPC Storport. |
| StorPortStallExecution | Застопоряет минипорт водителя. |
Блокирование подпрограмм поддержки
Драйвер Storport предоставляет следующие процедуры поддержки блокировки.
| Routine | Description |
|---|---|
| StorPortAcquireMSISpinLock | Получает сигнальную блокировку прерывания (MSI), связанную с указанным сообщением. |
| StorPortAcquireSpinLock | Получает указанную блокировку спина. |
| StorPortReleaseMSISpinLock | Освобождает ранее полученную блокировку спина MSI для указанного сообщения. |
| StorPortReleaseSpinLock | Releases a spinlock acquired by StorPortAcquireSpinLock. |
Подпрограммы поддержки управления памятью
Драйвер Storport предоставляет следующие процедуры поддержки управления памятью.
| Routine | Description |
|---|---|
| StorPortAllocateContiguousMemorySpecifyCacheNode | Выделяет целый ряд физически смежных некшированных непагированных памяти. |
| StorPortAllocateMdl | Выделяет MDL для описания заданной памяти непагированного пула. |
| StorPortAllocatePool | Выделяет блок неконтигируемой памяти пула. |
| StorPortAllocateRegistryBuffer | Выделяет буфер, который может использовать мини-порт для чтения и записи данных реестра. |
| StorPortBuildMdlForNonPagedPool | Обновляет MDL, чтобы описать связанную непагированную память. |
| StorPortConvertUlongToPhysicalAddress | Преобразует неподписанный длинный адрес в физический адрес. |
| StorPortConvertPhysicalAddressToULong64 | Преобразует физический адрес в значение ULONG64. |
| StorPortFreeMdl | Освобождает список дескрипторов памяти (MDL), описывающий непагрегированную память пула. |
| StorPortFreeContiguousMemorySpecifyCache | Освобождает диапазон некачеленной памяти в нераспакованной части адресного пространства системы. |
| StorPortFreePool | Frees a block of memory that was previously allocated by a call to the StorPortAllocatePool routine. |
| StorPortFreeRegistryBuffer | Освобождает буфер, выделенный для хранения данных реестра. |
| StorPortGetDataInBufferMdl | Возвращает MDL, связанный с буфером входных данных блока запросов SCSI (SRB). |
| StorPortGetDataInBufferScatterGatherList | Возвращает список точечного сбора, связанный с буфером входных данных блока запросов SCSI (SRB). |
| StorPortGetDataInBufferSystemAddress | Возвращает системный адрес для буфера входных данных блока запросов SCSI (SRB). |
| StorPortGetOriginalMdl | Возвращает MDL, связанный с заданным SRB. |
| StorPortGetVirtualAddress | Получает виртуальный адрес, который сопоставляется с указанным физическим адресом. |
| StorPortGetPhysicalAddress | Преобразует заданный диапазон виртуальных адресов в физический диапазон адресов для операции DMA. |
| StorPortGetSystemAddress | Возвращает виртуальный адрес в системном пространстве для буфера данных указанного блока запросов SCSI (SRB). |
| StorPortGetUncachedExtension | Выделяет некшированные общие буферы, к которым может предоставляться общий доступ ЦП и устройства. |
| StorPortMarkDumpMemory | Мини-порт должен пометить память, используемую для файла дампа или файла гибернации. Помеченная память сохраняется и остается допустимой после возобновления операции гибернации. The memory to mark is specified by an address and range length in a call to StorPortMarkDumpMemory. |
| StorPortMoveMemory | Копирует память из одного буфера в другой. |
Подпрограммы поддержки уведомлений
Драйвер Storport предоставляет следующие подпрограммы поддержки уведомлений.
| Routine | Description |
|---|---|
| StorPortAsyncNotificationDetected | Уведомляет драйвер Storport об изменении состояния устройства хранилища. |
| StorPortNotification | Уведомляет драйвер Storport о определенных событиях и условиях. |
| StorPortStateChangeDetected | Уведомляет драйвер порта Storport об изменении состояния для логического номера единиц (LUN), порта адаптера шины узла (HBA) или целевого устройства. |
Процедуры поддержки портов и операций ввода-вывода
Драйвер Storport предоставляет следующие процедуры поддержки ввода-вывода и порта.
| Routine | Description |
|---|---|
| StorPortGetDeviceBase | Сопоставляет адрес ввода-вывода с адресным пространством системы. |
| StorPortFreeDeviceBase | Frees a range of device I/O memory that StorPortGetDeviceBase previously mapped. |
| 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 предоставляет следующие подпрограммы поддержки управления питанием среды выполнения.
| Routine | Description |
|---|---|
| StorPortInitializePoFxPower | Регистрирует устройство хранения с помощью платформы управления питанием (PoFx). |
| StorPortPoFxActivateComponent | Увеличивает количество ссылок на активацию на указанный компонент устройства хранения. |
| StorPortPoFxIdleComponent | Уменьшает количество ссылок на активацию указанного компонента устройства хранения. |
| StorPortPoFxPowerControl | Отправляет запрос на управление питанием в платформу управления питанием (PoFx) для пересылки в подключаемый модуль двигателя питания (PEP). |
| StorPortPoFxSetComponentLatency | Указывает максимальную задержку, которую можно допускать при переходе от простоя к активному в указанном компоненте устройства хранилища. |
| StorPortPoFxSetComponentResidency | Задает предполагаемое время в течение длительного времени, когда компонент устройства хранения, скорее всего, останется бездействующий после того, как компонент введет условие простоя. |
Подпрограммы поддержки таймера
Драйвер Storport предоставляет следующие подпрограммы поддержки таймера.
| Routine | Description |
|---|---|
| StorPortFreeTimer | Frees a Storport timer context object previously created by the StorPortInitializeTimer routine. |
| StorPortInitializeTimer | Создает объект контекста таймера Storport. |
| StorPortRequestTimer | Планирует событие обратного вызова для объекта контекста таймера Storport. |