Rotinas de suporte do driver Storport

Esta página categoriza algumas das rotinas de suporte fornecidas aos miniportes pelo driver Storport fornecido pelo sistema. Consulte storport.h para ver uma lista completa.

Para ver uma lista de rotinas de miniporte do driver Storport, consulte Rotinas de driver do Miniport do Storport.

Rotinas de suporte ao acesso direto à memória

O driver Storport fornece as seguintes rotinas de suporte de DMA (acesso direto à memória).

Rotina Descrição
StorPortBuildScatterGatherList Cria uma lista de dispersão/coleta para o buffer de dados especificado.
StorPortGetScatterGatherList Recupera a lista de dispersão/coleta associada para o SRB (bloco de solicitação SCSI) especificado.
StorPortPutScatterGatherList Libera todos os recursos associados a uma lista de dispersão/coleta criada anteriormente por uma chamada para a rotina StorPortBuildScatterGatherList .

Rotinas de suporte geral

O Storport fornece as seguintes rotinas de suporte geral.

Rotina Descrição
StorPortDebugPrint Imprime uma cadeia de caracteres de depuração no depurador de kernel, se o depurador estiver anexado.
StorPortEtwEvent2 Publica um evento ETW (Rastreamento de Windows) em um canal de rastreamento de armazenamento. O miniporte pode registrar dois parâmetros ETW de uso geral. Os parâmetros ETW são expressos como dois pares nome-valor.
StorPortEtwEvent4 Publica um evento ETW em um canal de rastreamento de armazenamento. O miniporte pode registrar quatro parâmetros ETW de uso geral. Os parâmetros ETW são expressos como quatro pares nome-valor.
StorPortEtwEvent8 Publica um evento ETW em um canal de rastreamento de armazenamento. O miniporte pode registrar oito parâmetros ETW de uso geral. Os parâmetros ETW são expressos como oito pares nome-valor.
StorPortGetActivityIdSrb Recupera a ID da atividade ETW associada a um bloco de solicitação.
StorPortGetDeviceObjects Retorna os objetos de dispositivo associados à pilha de dispositivos do adaptador. Os objetos de dispositivo que serão retornados são os objetos de dispositivo funcional e físico do adaptador e o objeto do dispositivo ao qual o objeto de dispositivo funcional está anexado.
StorPortGetSystemPortNumber Recupera o número da porta atribuída pelo sistema para um adaptador de armazenamento.
StorPortInitializeSListHead Inicializa o líder de uma lista vinculada vinculada gerenciada por Storport.
StorPortInterlockedFlushSList Remove todos os itens de uma lista vinculada exclusivamente gerenciada pelo Storport. O acesso à lista é sincronizado em um sistema multiprocessador
StorPortInterlockedPopEntrySList Remove um item da frente de uma lista vinculada exclusivamente gerenciada pelo Storport. O acesso à lista é sincronizado em um sistema multiprocessador.
StorPortInterlockedPushEntrySList Insere um item na frente de uma lista vinculada exclusivamente gerenciada pelo Storport. O acesso à lista é sincronizado em um sistema multiprocessador.
StorPortInvokeAcpiMethod Executa um método ACPI para um dispositivo de armazenamento.
StorPortIsCurrentOsInstallationUpgrade Verifica se a instalação atual do Windows é uma atualização de uma versão anterior ou não.
StorPortIsDeviceOperationAllowed Permite que um miniporte determine se as operações de uma determinada classe de gerenciamento de dispositivo são permitidas.
StorPortLogError Notifica o driver de porta de que ocorreu um erro.
StorPortLogSystemEvent Fornece aos miniport drivers acesso completo aos recursos do recurso Windows de eventos do kernel do Windows, permitindo que os miniportes criem entradas de log de eventos que são realmente úteis na solução de problemas de armazenamento. Ele fornece uma alternativa melhor para StorPortLogError.
StorPortQueryDepthSList Recupera o número de entradas em uma lista vinculada exclusivamente gerenciada pelo Storport.
StorPortQueryPerformanceCounter Consulta e retorna o valor atual do contador de desempenho do sistema.
StorPortQuerySystemTime Obtém a hora atual do sistema.
StorPortRegistryRead Lê os dados do Registro para o dispositivo e o valor indicados.
StorPortRegistryReadAdapterKey Lê as chaves do adaptador de registro de hardware ou dispositivo localizadas no Registro em HKLM/CurrentControlSet/Enum/Caminho> da< instância/DeviceParameters/....
StorPortRegistryWriteAdapterKey Grava as chaves do adaptador de registro de hardware ou dispositivo localizadas no Registro em HKLM/CurrentControlSet/Enum/<Caminho> da instância/DeviceParameters/....
StorPortRegistryWrite Converte os dados do Registro contidos em um buffer especificado de ASCII para Unicode e, em seguida, grava os dados na área de armazenamento por HBA do driver de miniporte.

Rotinas de suporte ao processamento de solicitações de E/S

O Storport fornece as seguintes rotinas de suporte ao processamento de solicitações de E/S.

Rotina Descrição
StorPortBusy Notifica o driver de porta de que o adaptador está ocupado no momento, tratando solicitações pendentes.
StorPortCompleteRequest Conclui todas as solicitações pendentes definindo o valor de status SRB como SrbStatus.
StorPortCompleteServiceIrp Chamado por um driver de miniporte virtual do Storport quando ele precisa concluir uma solicitação recebida em sua rotina de retorno de chamada HwStorProcessServiceRequest.
StorPortDeviceBusy Notifica o driver de porta de que a unidade lógica especificada está ocupada no momento, tratando solicitações pendentes.
StorPortDeviceReady Notifica o driver de porta de que a unidade lógica indicada está pronta para lidar com novas solicitações.
StorPortFreeWorker Libera um item de trabalho do Storport alocado anteriormente pela rotina StorPortInitializeWorker .
StorPortGetRequestInfo Recupera as informações de solicitação de E/S associadas a um SRB (bloco de solicitação SCSI) e as retorna em uma estrutura STOR_REQUEST_INFO dados.
StorPortInitializeWorker Cria um novo item de trabalho do Storport que é executado em um thread de trabalho do sistema.
StorPortQueueWorkItem Agenda um item de trabalho do Storport para ser executado dentro do contexto de um thread de trabalho do sistema.
StorPortPause Pausa um adaptador pelo período de tempo especificado.
StorPortPauseDevice Pausa um dispositivo de unidade lógica específico pelo período de tempo especificado.
StorPortReady Notifica o driver de porta de que o adaptador não está mais ocupado.
StorPortResume Retoma um adaptador em pausa.
StorPortResumeDevice Retoma uma unidade lógica pausada anteriormente.

Rotinas de suporte à inicialização

O driver Storport fornece as seguintes rotinas de suporte à inicialização.

Rotina Descrição
StorPortEnablePassiveInitialization Permite que a rotina de retorno de chamada HwStorPassiveInitializeRoutine do miniporte seja executada no PASSIVE_LEVEL durante a inicialização do miniporto.
StorPortGetActiveGroupCount Retorna o número de grupos de processadores que estão presentes no sistema.
StorPortGetActiveNodeCount Retorna o número de nós que estão presentes no sistema.
StorPortGetBusData Recupera as informações de configuração específicas do barramento necessárias para inicializar o HBA.
StorPortGetCurrentProcessorNumber Recupera o número atual do processador do kernel.
StorPortGetGroupAffinity Constrói uma máscara dos processadores ativos em um grupo solicitado.
StorPortGetHighestNodeNumber Retorna o maior número de nó possível no sistema.
StorPortGetLogicalProcessorRelationship Retorna informações de relação para um ou mais tipos especificados. Esses tipos incluem grupos, pacotes físicos e nós no sistema host. As informações retornadas incluem máscaras de afinidade de processador compostas pelos processadores lógicos no sistema host. Esses processadores lógicos compartilham os tipos de relação especificados.
StorPortGetLogicalUnit Retorna um ponteiro para a área de armazenamento por unidade lógica do driver de miniporte.
StorPortGetNodeAffinity Constrói uma máscara dos processadores ativos em um nó NUMA (acesso não uniforme à memória) solicitado.
StorPortGetStartIoPerfParams Coloca os parâmetros de desempenho para uma determinada solicitação de E/S em uma estrutura STARTIO_PERFORMANCE_PARAMETERS dados.
StorPortInitialize Inicializa os parâmetros de driver de porta e os dados de extensão. O StorPortInitilize também salva as informações do adaptador fornecidas do driver do miniporto.
StorPortInitializePerfOpts Inicializa as otimizações de desempenho que o driver de miniporte e o driver Storport suportam usando uma estrutura PERF_CONFIGURATION_DATA aplicativo.
StorPortSetAdapterBusType Usado para ajustar o BusType do adaptador dependendo de sua configuração atual. Definir o BusType com essa rotina permitirá que você substitua a propriedade global definida no miniporte INF sem precisar instalar novamente o driver. Isso é útil para cenários como suporte a RAID ou suporte para vários adaptadores com um tipo de barramento diferente.
StorPortSetBusDataByOffset Grava informações de configuração específicas do barramento.
StorPortSetDeviceQueueDepth Define a profundidade máxima da fila do dispositivo para o dispositivo indicado.
StorPortSetPowerSettingNotificationGuids Permite que um miniporte receba notificações de configuração de energia. O miniporte registra uma matriz de GUIDs que identificam as configurações de energia para as quais receber notificações de alteração de energia.
StorPortSetUnitAttributes Registra os atributos de energia de um dispositivo de unidade de armazenamento com o driver Storport.

Rotinas de suporte de interrupção

O driver Storport fornece as seguintes rotinas de suporte de interrupção.

Rotina Descrição
StorPortGetMSIInfo Recupera as informações de MSI (interrupção sinalizada) da mensagem especificada.
StorPortSynchronizeAccess Fornece acesso sincronizado à extensão de dispositivo de um driver de miniporte.
StorPortInitializeDpc Inicializa uma DPC (chamada de procedimento adiada) do StorPort
StorPortIssueDpc Emite um DPC do Storport.
StorPortStallExecution Para o driver de miniporte.

Rotinas de suporte de bloqueio

O driver Storport fornece as seguintes rotinas de suporte de bloqueio.

Rotina Descrição
StorPortAcquireMSISpinLock Adquire o bloqueio de rotação de MSI (interrupção sinalizada por mensagem) associado à mensagem especificada.
StorPortAcquireSpinLock Adquire o bloqueio de rotação especificado.
StorPortReleaseMSISpinLock Libera um bloqueio de rotação MSI adquirido anteriormente para a mensagem especificada.
StorPortReleaseSpinLock Libera um spinlock adquirido por StorPortAcquireSpinLock.

Rotinas de suporte ao gerenciamento de memória

O driver Storport fornece as seguintes rotinas de suporte de gerenciamento de memória.

Rotina Descrição
StorPortAllocateContiguousMemorySpecifyCacheNode Aloca um intervalo de memória não paecada fisicamente contígua e não papagada.
StorPortAllocateMdl Aloca um MDL para descrever a memória do pool não páginada determinada.
StorPortAllocatePool Aloca um bloco de memória de pool não contígua e não pageda.
StorPortAllocateRegistryBuffer Aloca um buffer que pode ser usado por um miniporte para ler e gravar dados do Registro.
StorPortBuildMdlForNonPagedPool Atualiza a MDL para descrever a memória não pageda associada.
StorPortConvertUlongToPhysicalAddress Converte um endereço longo não assinado em um endereço físico.
StorPortConvertPhysicalAddressToULong64 Converte um endereço físico em um valor ULONG64.
StorPortFreeMdl Libera uma lista de descritores de memória (MDL) que descreve a memória de pool não paginável.
StorPortFreeContiguousMemorySpecifyCache Desaloca um intervalo de memória não armazenada em cache na parte não paginável do espaço de endereço do sistema.
StorPortFreePool Libera um bloco de memória que foi previamente alocada por uma chamada para a rotina StorPortAllocatePool .
StorPortFreeRegistryBuffer Libera o buffer que foi alocado para armazenar dados de registro.
StorPortGetDataInBufferMdl Retorna um MDL associado ao buffer de dados de entrada de um bloco de solicitação SCSI (SRB).
StorPortGetDataInBufferScatterGatherList Retorna a lista de dispersão-coleta associada ao buffer de dados de entrada de um bloco de solicitação SCSI (SRB).
StorPortGetDataInBufferSystemAddress Retorna o endereço do sistema para o buffer de dados de entrada de um bloco de solicitação SCSI (SRB).
StorPortGetOriginalMdl Retorna o MDL associado ao SRB fornecido.
StorPortGetVirtualAddress Obtém um endereço virtual que mapeia para o endereço físico indicado.
StorPortGetPhysicalAddress Converte um determinado intervalo de endereços virtuais em um intervalo de endereços físicos para uma operação DMA.
StorPortGetSystemAddress Retorna um endereço virtual no espaço do sistema para o buffer de dados do bloco de solicitação SCSI especificado (SRB).
StorPortGetUncachedExtension Aloca um buffer comum não armazenado em cache a ser compartilhado pela CPU e pelo dispositivo.
StorPortMarkDumpMemory Uma miniporta deve marcar a memória usada para o arquivo de despejo ou o arquivo de hibernação. A memória marcada é retida e permanece válida após um reinício da operação de hibernação. A memória a ser marcada é especificada por um endereço e um comprimento de intervalo em uma chamada para StorPortMarkDumpMemory.
StorPortMoveMemory Copia a memória de um buffer para outro.

Rotinas de suporte de notificação

O driver Storport fornece as seguintes rotinas de suporte de notificação.

Rotina Descrição
StorPortAsyncNotificationDetected Notifica o driver Storport de um evento de alteração de status do dispositivo de armazenamento.
StorPortNotification Notifica o driver Storport de determinados eventos e condições.
StorPortStateChangeDetected Notifica o driver de porta Storport de uma alteração de estado para um LUN (número de unidade lógica), porta HBA (adaptador de barramento de host) ou dispositivo de destino.

Porta e registrar rotinas de suporte de e/s

O driver Storport fornece a porta a seguir e registra as rotinas de suporte de e/s.

Rotina Descrição
StorPortGetDeviceBase Mapas um endereço de e/s para o espaço de endereço do sistema.
StorPortFreeDeviceBase Libera um intervalo de memória de e/s de dispositivo que foi mapeado pelo StorPortGetDeviceBase.
StorPortReadPortBufferUchar Lê um valor de um endereço de porta especificado
StorPortReadPortBufferUlong Lê um valor de um endereço de porta especificado.
StorPortReadPortBufferUshort Lê um valor de um endereço de porta especificado.
StorPortReadPortUchar Lê um valor de um endereço de porta especificado
StorPortReadPortUlong Lê um valor de um endereço de porta especificado.
StorPortReadPortUshort Lê um valor de um endereço de porta especificado.
StorPortReadRegisterBufferUchar Lê um valor de um endereço de registro especificado.
StorPortReadRegisterBufferUlong Lê um valor de um endereço de registro especificado.
StorPortReadRegisterBufferUlong64 Lê um número de valores ULONG64 do endereço de registro de 64 bits especificado em um buffer.
StorPortReadRegisterBufferUshort Lê um valor de um endereço de registro especificado.
StorPortReadRegisterUchar Lê um valor de um endereço de registro especificado.
StorPortReadRegisterUlong Lê um valor de um endereço de registro especificado.
StorPortReadRegisterUlong64 Lê um valor de 64 bits de um endereço de registro de 64 bits especificado.
StorPortReadRegisterUshort Lê um valor de um endereço de registro especificado.
StorPortValidateRange Determina se um intervalo especificado de endereços de e/s está sendo usado por outro adaptador. essa rotina é obsoleta nos sistemas operacionais Windows NT 4,0 e posteriores.
StorPortWritePortBufferUchar Grava um valor em um endereço de registro especificado.
StorPortWritePortBufferUlong Grava um valor em um endereço de registro especificado.
StorPortWritePortBufferUshort Grava um valor em um endereço de registro especificado.
StorPortWritePortUchar Grava um valor em um endereço de registro especificado.
StorPortWritePortUlong Grava um valor em um endereço de registro especificado.
StorPortWritePortUshort Grava um valor em um endereço de registro especificado.
StorPortWriteRegisterBufferUchar Transfere um determinado número de bytes não assinados de um buffer para o HBA.
StorPortWriteRegisterBufferUlong Transfere um determinado número de valores ULONG de um buffer para o HBA.
StorPortWriteRegisterBufferUlong64 Grava vários valores de ULONG64 de um endereço de registro de 64 bits especificado.
StorPortWriteRegisterBufferUshort Transfere um determinado número de valores USHORT de um buffer para o HBA.
StorPortWriteRegisterUchar Transfere um determinado número de valores de caracteres de um buffer para o endereço de registro HBA indicado.
StorPortWriteRegisterUlong Transfere um valor ULONG para o endereço de registro HBA indicado.
StorPortWriteRegisterUlong64 Grava um valor ULONG64 no endereço de registro especificado.
StorPortWriteRegisterUshort Transfere um valor ULONG para o endereço de registro HBA indicado.

Rotinas de suporte do Gerenciamento de Energia de Runtime

O driver Storport fornece as seguintes rotinas de suporte de gerenciamento de energia de runtime.

Rotina Descrição
StorPortInitializePoFxPower Registra um dispositivo de armazenamento com a PoFx (estrutura de gerenciamento de energia).
StorPortPoFxActivateComponent Incrementa a contagem de referência de ativação no componente especificado de um dispositivo de armazenamento.
StorPortPoFxIdleComponent Diminui a contagem de referência de ativação de um componente especificado de um dispositivo de armazenamento.
StorPortPoFxPowerControl Envia uma solicitação de controle de energia para a estrutura de gerenciamento de energia (PoFx) para encaminhar para o PEP (plug-in do mecanismo de energia).
StorPortPoFxSetComponentLatency Especifica a latência máxima que pode ser tolerada na transição da condição ociosa para a condição ativa no componente de dispositivo de armazenamento especificado.
StorPortPoFxSetComponentResidency Define o tempo estimado para quanto tempo um componente de dispositivo de armazenamento provavelmente permanecerá ocioso depois que o componente entrar na condição ociosa.

Rotinas de suporte do temporizador

O driver Storport fornece as seguintes rotinas de suporte ao temporizador.

Rotina Descrição
StorPortFreeTimer Libera um objeto de contexto do temporizador do Storport criado anteriormente pela rotina StorPortInitializeTimer .
StorPortInitializeTimer Cria um objeto de contexto do temporizador do Storport.
StorPortRequestTimer Agenda um evento de retorno de chamada para um objeto de contexto do temporizador do Storport.