Процедуры поддержки драйверов 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. |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по