Compartir a través de


Rutinas de soporte del controlador Storport

En esta página se clasifican algunas de las rutinas de soporte que proporciona el controlador Storport proporcionado por el sistema. Consulte storport.h para obtener una lista completa.

Para obtener una lista de las rutinas de minipuerto de controlador Storport, consulte Rutinas del controlador de minipuerto Storport.

Rutinas de soporte de acceso directo a memoria

El controlador Storport proporciona las siguientes rutinas de soporte de acceso directo a memoria (DMA).

Routine Descripción
StorPortBuildScatterGatherList Crea una lista de dispersión/recopilación para el búfer de datos especificado.
StorPortGetScatterGatherList Recupera la lista de dispersión/recopilación asociada para el bloque de solicitud SCSI (SRB) especificado.
StorPortPutScatterGatherList Libera los recursos asociados a una lista de dispersión/recopilación que creó anteriormente con una llamada a la rutina StorPortBuildScatterGatherList.

Rutinas generales de soporte

Storport proporciona las siguientes rutinas generales de soporte.

Routine Descripción
StorPortDebugPrint Imprime una cadena de depuración en el depurador de kernel, si el depurador está asociado.
StorPortEtwEvent2 Publica un evento de seguimiento de eventos para Windows (ETW) en un canal de seguimiento de almacenamiento. El minipuerto puede registrar dos parámetros ETW de uso general. Los parámetros ETW se expresan como dos pares nombre-valor.
StorPortEtwEvent4 Publica un evento ETW en un canal de seguimiento de almacenamiento. El minipuerto puede registrar cuatro parámetros ETW de uso general. Los parámetros ETW se expresan como cuatro pares nombre-valor.
StorPortEtwEvent8 Publica un evento ETW en un canal de seguimiento de almacenamiento. El minipuerto puede registrar ocho parámetros ETW de uso general. Los parámetros ETW se expresan como ocho pares nombre-valor.
StorPortGetActivityIdSrb Recupera el identificador de actividad ETW asociado a un bloque de solicitudes.
StorPortGetDeviceObjects Devuelve los objetos de dispositivo asociados a la pila de dispositivos del adaptador. Los objetos de dispositivo que se devuelven son los objetos funcionales y físicos del dispositivo del adaptador y el objeto de dispositivo al que está asociado el objeto de dispositivo funcional.
StorPortGetSystemPortNumber Recupera el número de puerto asignado por el sistema para un adaptador de almacenamiento.
StorPortInitializeSListHead Inicializa el encabezado de una lista enlazada individualmente administrada por Storport.
StorPortInterlockedFlushSList Quita todos los elementos de una lista enlazada individualmente administrada por Storport. El acceso a la lista se sincroniza en un sistema multiprocesador
StorPortInterlockedPopEntrySList Quita un elemento de la parte delantera de una lista enlazada individualmente administrada por Storport. El acceso a la lista se sincroniza en un sistema multiprocesador.
StorPortInterlockedPushEntrySList Inserta un elemento en la parte delantera de una lista enlazada individualmente administrada por Storport. El acceso a la lista se sincroniza en un sistema multiprocesador.
StorPortInvokeAcpiMethod Ejecuta un método ACPI para un dispositivo de almacenamiento.
StorPortIsCurrentOsInstallationUpgrade Comprueba si la instalación actual de Windows es una actualización de una versión anterior o no.
StorPortIsDeviceOperationAllowed Permite que un minipuerto determine si se permiten operaciones para una determinada clase de administración de dispositivos.
StorPortLogError Notifica al controlador de puerto que se produjo un error.
StorPortLogTelemetry Registra un evento de telemetría de minipuerto para ayudar a diagnosticar o recopilar información útil.
StorPortLogSystemEvent Proporciona acceso completo a los controladores de minipuerto a las funcionalidades de la instalación de eventos del kernel de Windows, lo que permite a los controladores de minipuerto crear entradas de registro de eventos que son realmente útiles para solucionar problemas de almacenamiento. Proporciona una mejor alternativa a StorPortLogError.
StorPortQueryDepthSList Recupera el número de entradas de una lista vinculada administrada por Storport.
StorPortQueryPerformanceCounter Consulta y devuelve el valor del contador de rendimiento del sistema actual.
StorPortQuerySystemTime Obtiene la hora actual del sistema.
StorPortRegistryRead Lee los datos del Registro para el dispositivo y el valor indicados.
StorPortRegistryReadAdapterKey Lee las claves del adaptador del registro de hardware o dispositivo ubicadas en el Registro, en HKLM/CurrentControlSet/Enum/<Ruta de instancia>/DeviceParameters/....
StorPortRegistryWriteAdapterKey Escribe las claves del adaptador del registro de hardware o dispositivo ubicadas en el Registro, en HKLM/CurrentControlSet/Enum/<Ruta de instancia>/DeviceParameters/....
StorPortRegistryWrite Convierte los datos del Registro contenidos en un búfer especificado de ASCII a Unicode y, a continuación, escribe los datos en el área de almacenamiento del controlador de minipuerto por HBA.

Rutinas de soporte de procesamiento de solicitudes de E/S

Storport proporciona las siguientes rutinas de soporte de procesamiento de solicitudes de E/S.

Routine Descripción
StorPortBusy Notifica al controlador de puerto que el adaptador está ocupado actualmente y controla las solicitudes pendientes.
StorPortCompleteRequest Completa todas las solicitudes pendientes estableciendo el valor de estado de SRB en SrbStatus.
StorPortCompleteServiceIrp La llama un controlador de minipuerto virtual Storport cuando necesita completar una solicitud que recibió en su rutina de devolución de llamada HwStorProcessServiceRequest.
StorPortDeviceBusy Notifica al controlador de puerto que la unidad lógica especificada está ocupada actualmente y controla las solicitudes pendientes.
StorPortDeviceReady Notifica al controlador de puerto que la unidad lógica indicada está lista para controlar las nuevas solicitudes.
StorPortFreeWorker Libera un elemento de trabajo de Storport asignado previamente por la rutina StorPortInitializeWorker.
StorPortGetRequestInfo Recupera la información de solicitud de E/S asociada a un bloque de solicitud SCSI (SRB) y la devuelve en una estructura STOR_REQUEST_INFO.
StorPortInitializeWorker Crea un nuevo elemento de trabajo de Storport que se ejecuta en un subproceso de trabajo del sistema.
StorPortQueueWorkItem Programa un elemento de trabajo de Storport para que se ejecute dentro del contexto de un subproceso de trabajo del sistema.
StorPortPause Pausa un adaptador para el período especificado.
StorPortPauseDevice Pausa un dispositivo de unidad lógica específico durante el período de tiempo especificado.
StorPortReady Notifica al controlador de puerto que el adaptador ya no está ocupado.
StorPortResume Reanuda un adaptador en pausa.
StorPortResumeDevice Reanuda una unidad lógica que se ha pausado anteriormente.

Rutinas de soporte de inicialización

El controlador Storport proporciona las siguientes rutinas de soporte de inicialización.

Routine Descripción
StorPortEnablePassiveInitialization Habilita la rutina de devolución de llamada HwStorPassiveInitializeRoutine del minipuerto para ejecutarse en PASSIVE_LEVEL durante la inicialización del minipuerto.
StorPortGetActiveGroupCount Devuelve el número de grupos de procesadores que están presentes en el sistema.
StorPortGetActiveNodeCount Devuelve el número de nodos que están presentes en el sistema.
StorPortGetBusData Recupera la información de configuración específica del bus necesaria para inicializar el HBA.
StorPortGetCurrentProcessorNumber Recupera el número de procesador actual del kernel.
StorPortGetGroupAffinity Construye una máscara de los procesadores activos en un grupo solicitado.
StorPortGetHighestNodeNumber Devuelve el número de nodo más grande posible en el sistema.
StorPortGetLogicalProcessorRelationship Devuelve información de relación para uno o varios tipos especificados. Estos tipos incluyen grupos, paquetes físicos y nodos en el sistema host. La información que se devuelve incluye máscaras de afinidad de procesador compuestas por procesadores lógicos en el sistema host. Estos procesadores lógicos comparten los tipos de relación especificados.
StorPortGetLogicalUnit Devuelve un puntero al área de almacenamiento por unidad lógica del controlador de minipuerto.
StorPortGetNodeAffinity Construye una máscara de los procesadores activos en un nodo de acceso a memoria no único (NUMA) solicitado.
StorPortGetStartIoPerfParams Coloca los parámetros de rendimiento de una solicitud de E/S determinada en una estructura STARTIO_PERFORMANCE_PARAMETERS.
StorPortInitialize Inicializa los parámetros del controlador de puerto y los datos de extensión. StorPortInitilize también guarda la información del adaptador proporcionada desde el controlador de minipuerto.
StorPortInitializePerfOpts Inicializa las optimizaciones de rendimiento que admiten tanto el controlador de minipuerto como el controlador Storport mediante una estructura PERF_CONFIGURATION_DATA.
StorPortSetAdapterBusType Se usa para ajustar BusType del adaptador en función de su configuración actual. Establecer BusType con esta rutina permite invalidar la propiedad global establecida en el INF del minipuerto sin tener que reinstalar el controlador. Esta funcionalidad es útil para escenarios como la compatibilidad con RAID o la compatibilidad con varios adaptadores con un tipo de bus diferente.
StorPortSetBusDataByOffset Escribe información de configuración específica del bus.
StorPortSetDeviceQueueDepth Establece la profundidad máxima de la cola de dispositivos para el dispositivo indicado.
StorPortSetPowerSettingNotificationGuids Permite que un minipuerto reciba notificaciones de configuración de energía. El minipuerto registra una matriz de GUID que identifican la configuración de energía para recibir notificaciones de cambio de energía.
StorPortSetUnitAttributes Registra los atributos de energía de un dispositivo de unidad de almacenamiento con el controlador Storport.

Rutinas de soporte de interrupción

El controlador Storport proporciona las siguientes rutinas de soporte de interrupción.

Routine Descripción
StorPortGetMSIInfo Recupera la información de interrupción señalizada por mensaje (MSI) para el mensaje especificado.
StorPortSynchronizeAccess Proporciona acceso sincronizado a la extensión de dispositivo de un controlador de minipuerto.
StorPortInitializeDpc Inicializa una llamada al procedimiento diferido de Storport (DPC).
StorPortIssueDpc Emite un DPC de Storport.
StorPortStallExecution Detiene el controlador del minipuerto.

Rutinas de soporte de bloqueo

El controlador Storport proporciona las siguientes rutinas de soporte de bloqueo.

Routine Descripción
StorPortAcquireMSISpinLock Adquiere el bloqueo por subproceso de interrupción señalizada por mensaje (MSI) asociado al mensaje especificado.
StorPortAcquireSpinLock Adquiere el bloqueo por subproceso especificado.
StorPortReleaseMSISpinLock Libera un bloqueo por subproceso de MSI adquirido previamente para el mensaje especificado.
StorPortReleaseSpinLock Libera un bloqueo por subproceso adquirido por StorPortAcquireSpinLock.

Rutinas de soporte de administración de memoria

El controlador Storport proporciona las siguientes rutinas de soporte de administración de memoria.

Routine Descripción
StorPortAllocateContiguousMemorySpecifyCacheNode Asigna un intervalo de memoria no paginada físicamente contigua y no paginada.
StorPortAllocateMdl Asigna una MDL para describir la memoria del grupo no paginada especificada.
StorPortAllocatePool Asigna un bloque de memoria de grupo no contigua y no paginada.
StorPortAllocateRegistryBuffer Asigna un búfer que puede usar un minipuerto para leer y escribir datos del Registro.
StorPortBuildMdlForNonPagedPool Actualiza la MDL para describir la memoria no paginada asociada.
StorPortConvertUlongToPhysicalAddress Convierte una dirección larga sin firmar en una dirección física.
StorPortConvertPhysicalAddressToULong64 Convierte una dirección física en un valor de ULONG64.
StorPortFreeMdl Libera una lista de descriptores de memoria (MDL) que describe la memoria del grupo no paginada.
StorPortFreeContiguousMemorySpecifyCache Desasigna un intervalo de memoria no almacenada en caché en la parte no paginada del espacio de direcciones del sistema.
StorPortFreePool Libera un bloque de memoria asignado previamente por una llamada a la rutina StorPortAllocatePool.
StorPortFreeRegistryBuffer Libera el búfer asignado para almacenar los datos del Registro.
StorPortGetDataInBufferMdl Devuelve una MDL asociada al búfer de datos de entrada de un bloque de solicitud SCSI (SRB).
StorPortGetDataInBufferScatterGatherList Devuelve la lista de recopilación y dispersión asociada al búfer de datos de entrada de un bloque de solicitud SCSI (SRB).
StorPortGetDataInBufferSystemAddress Devuelve la dirección del sistema para el búfer de datos de entrada de un bloque de solicitud SCSI (SRB).
StorPortGetOriginalMdl Devuelve la MDL asociada al SRB indicado.
StorPortGetVirtualAddress Obtiene una dirección virtual que se asigna a la dirección física indicada.
StorPortGetPhysicalAddress Convierte un intervalo de direcciones virtuales determinado en un intervalo de direcciones físicas para una operación DMA.
StorPortGetSystemAddress Devuelve una dirección virtual en el espacio del sistema para el búfer de datos del bloque de solicitud SCSI (SRB) especificado.
StorPortGetUncachedExtension Asigna un búfer común sin almacenar en caché que puede compartir la CPU y el dispositivo.
StorPortMarkDumpMemory Un minipuerto debe marcar la memoria utilizada para el archivo de volcado o el archivo de hibernación. La memoria marcada se conserva y permanece válida después de una reanudación de la operación de hibernación. La memoria que se va a marcar se especifica mediante una longitud de dirección e intervalo en una llamada a StorPortMarkDumpMemory.
StorPortMoveMemory Copia la memoria de un búfer a otro.

Rutinas de soporte de notificaciones

El controlador Storport proporciona las siguientes rutinas de soporte de notificación.

Routine Descripción
StorPortAsyncNotificationDetected Notifica al controlador Storport de un evento de cambio de estado del dispositivo de almacenamiento.
StorPortNotification Notifica al controlador Storport ciertos eventos y condiciones.
StorPortStateChangeDetected Notifica al controlador de puerto Storport un cambio de estado para un número de unidad lógica (LUN), el puerto del adaptador de bus host (HBA) o el dispositivo de destino.

Rutinas de soporte de E/S de puerto y registro

El controlador Storport proporciona las siguientes rutinas de soporte de E/S de puerto y registro.

Routine Descripción
StorPortGetDeviceBase Asigna una dirección de E/S al espacio de direcciones del sistema.
StorPortFreeDeviceBase Libera un intervalo de memoria de E/S del dispositivo que StorPortGetDeviceBase asignó previamente.
StorPortReadPortBufferUchar Lee un valor de una dirección de puerto especificada.
StorPortReadPortBufferUlong Lee un valor de una dirección de puerto especificada.
StorPortReadPortBufferUshort Lee un valor de una dirección de puerto especificada.
StorPortReadPortUchar Lee un valor de una dirección de puerto especificada.
StorPortReadPortUlong Lee un valor de una dirección de puerto especificada.
StorPortReadPortUshort Lee un valor de una dirección de puerto especificada.
StorPortReadRegisterBufferUchar Lee un valor de una dirección de registro especificada.
StorPortReadRegisterBufferUlong Lee un valor de una dirección de registro especificada.
StorPortReadRegisterBufferUlong64 Lee un número especificado de valores de ULONG64 de la dirección de registro de 64 bits especificada en un búfer.
StorPortReadRegisterBufferUshort Lee un valor de una dirección de registro especificada.
StorPortReadRegisterUchar Lee un valor de una dirección de registro especificada.
StorPortReadRegisterUlong Lee un valor de una dirección de registro especificada.
StorPortReadRegisterUlong64 Lee un valor de 64 bits de una dirección de registro de 64 bits especificada.
StorPortReadRegisterUshort Lee un valor de una dirección de registro especificada.
StorPortValidateRange Determina si otro adaptador usa un intervalo especificado de direcciones de E/S. Esta rutina está obsoleta en Windows NT 4.0 y sistemas operativos posteriores.
StorPortWritePortBufferUchar Escribe un valor en una dirección de registro especificada.
StorPortWritePortBufferUlong Escribe un valor en una dirección de registro especificada.
StorPortWritePortBufferUshort Escribe un valor en una dirección de registro especificada.
StorPortWritePortUchar Escribe un valor en una dirección de registro especificada.
StorPortWritePortUlong Escribe un valor en una dirección de registro especificada.
StorPortWritePortUshort Escribe un valor en una dirección de registro especificada.
StorPortWriteRegisterBufferUchar Transfiere un número determinado de bytes sin signo de un búfer al HBA.
StorPortWriteRegisterBufferUlong Transfiere un número determinado de valores de ULONG de un búfer al HBA.
StorPortWriteRegisterBufferUlong64 Escribe un número especificado de valores de ULONG64 de una dirección de registro de 64 bits especificada.
StorPortWriteRegisterBufferUshort Transfiere un número determinado de valores de USHORT de un búfer al HBA.
StorPortWriteRegisterUchar Transfiere un número determinado de valores de caracteres de un búfer a la dirección de registro de HBA indicada.
StorPortWriteRegisterUlong Transfiere un valor ULONG a la dirección de registro de HBA indicada.
StorPortWriteRegisterUlong64 Escribe un valor ULONG64 en la dirección de registro especificada.
StorPortWriteRegisterUshort Transfiere un valor ULONG a la dirección de registro de HBA indicada.

Rutinas de soporte de administración de energía en tiempo de ejecución

El controlador Storport proporciona las siguientes rutinas de soporte de administración de energía en tiempo de ejecución.

Routine Descripción
StorPortInitializePoFxPower Registra un dispositivo de almacenamiento con el marco de administración de energía (PoFx).
StorPortPoFxActivateComponent Incrementa el recuento de referencias de activación en el componente especificado de un dispositivo de almacenamiento.
StorPortPoFxIdleComponent Reduce el recuento de referencias de activación de un componente especificado de un dispositivo de almacenamiento.
StorPortPoFxPowerControl Envía una solicitud de control de energía al marco de administración de energía (PoFx) para reenviarla al complemento del motor de potencia (PEP).
StorPortPoFxSetComponentLatency Especifica la latencia máxima que se puede tolerar en la transición de inactivo a activo en el componente de dispositivo de almacenamiento especificado.
StorPortPoFxSetComponentResidency Establece el tiempo estimado durante el cual es probable que un componente del dispositivo de almacenamiento permanezca inactivo después de que el componente entre en la condición de inactividad.

Rutinas de soporte de temporizador

El controlador Storport proporciona las siguientes rutinas de soporte de temporizador.

Routine Descripción
StorPortFreeTimer Libera un objeto de contexto del temporizador de Storport creado previamente por la rutina StorPortInitializeTimer.
StorPortInitializeTimer Crea un objeto de contexto de temporizador de Storport.
StorPortRequestTimer Programa un evento de devolución de llamada para un objeto de contexto del temporizador de Storport.