Rotinas de suporte ao driver do Storport
Esta página categoriza algumas das rotinas de suporte fornecidas às miniportas pelo driver do Storport fornecido pelo sistema. Consulte storport.h para obter uma lista completa.
Para obter uma lista de rotinas de miniportas do driver do Storport, consulte Rotinas de Driver de Miniporta do Storport.
Rotinas de Suporte ao Acesso Direto à Memória
O driver do Storport fornece as seguintes rotinas de suporte a 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 bloco de solicitação de SCSI (SRB) especificado. |
StorPortPutScatterGatherList | Libera todos os recursos associados a uma lista de dispersão/coleta que foi criada anteriormente por uma chamada para a rotina StorPortBuildScatterGatherList. |
Rotinas Gerais de Suporte
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 de Rastreamento de Eventos para Windows (ETW) em um canal de rastreamento de armazenamento. A miniporta 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. A miniporta 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. A miniporta 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 retornados são os objetos de dispositivo funcional e físico do adaptador e o objeto de 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 cabeçalho de uma lista vinculada individual gerenciada pelo Storport. |
StorPortInterlockedFlushSList | Remove todos os itens de uma lista vinculada simples gerenciada pelo Storport. O acesso à lista é sincronizado em um sistema multiprocessador |
StorPortInterlockedPopEntrySList | Remove um item da frente de uma lista vinculada simples gerenciada pelo Storport. O acesso à lista é sincronizado em um sistema multiprocessador. |
StorPortInterlockedPushEntrySList | Insere um item da frente de uma lista vinculada simples 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 uma miniporta determine se são permitidas as operações para uma classe de gerenciamento de dispositivo específica. |
StorPortLogError | Notifica o driver de porta de que ocorreu um erro. |
StorPortLogTelemetry | Registra um evento de telemetria de miniporta para ajudar a diagnosticar ou coletar informações úteis. |
StorPortLogSystemEvent | Fornece aos drivers de miniporta acesso total aos recursos do centro de eventos do kernel do Windows, permitindo que os drivers de miniporta criem entradas de log de eventos que são realmente úteis na solução de problemas de armazenamento. Fornece uma alternativa melhor para StorPortLogError. |
StorPortQueryDepthSList | Recupera o número de entradas em uma lista vinculada simples 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/<Instance path>/DeviceParameters/.... |
StorPortRegistryWriteAdapterKey | Grava as chaves do adaptador de registro de hardware ou dispositivo localizadas no registro em HKLM/CurrentControlSet/Enum/<Instance path>/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 miniporta. |
Rotinas de Suporte ao Processamento de Solicitações de E/S
O Storport fornece as seguintes rotinas de suporte ao processamento de solicitação de E/S.
Rotina | Descrição |
---|---|
StorPortBusy | Notifica o driver de porta de que o adaptador está ocupado no momento, lidando com solicitações pendentes. |
StorPortCompleteRequest | Conclui todas as solicitações pendentes, definindo o valor de status do SRB como SrbStatus. |
StorPortCompleteServiceIrp | Chamado por um driver de miniporta virtual do Storport quando ele precisa concluir uma solicitação recebida na sua rotina de retorno de chamada HwStorProcessServiceRequest. |
StorPortDeviceBusy | Notifica o driver de porta de que a unidade lógica especificada está ocupada no momento, lidando com 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 bloco de solicitação SCSI (SRB) e as retorna em uma estrutura STOR_REQUEST_INFO. |
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 no 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 pausado. |
StorPortResumeDevice | Retoma uma unidade lógica que foi pausada anteriormente. |
Rotinas de Suporte à Inicialização
O driver do Storport fornece as seguintes rotinas de suporte de inicialização.
Rotina | Descrição |
---|---|
StorPortEnablePassiveInitialization | Permite que a rotina de retorno de chamada HwStorPassiveInitializeRoutine da miniporta seja executada em PASSIVE_LEVEL durante a inicialização da miniporta. |
StorPortGetActiveGroupCount | Retorna o número de grupos de processadores 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 do processador atual 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 da miniporta. |
StorPortGetNodeAffinity | Constrói uma máscara dos processadores ativos em um nó de acesso à memória não uniforme (NUMA) solicitado. |
StorPortGetStartIoPerfParams | Coloca os parâmetros de desempenho para uma determinada solicitação de E/S em uma estrutura STARTIO_PERFORMANCE_PARAMETERS. |
StorPortInitialize | Inicializa os parâmetros do driver de porta e os dados de extensão. StorPortInitilize também salva as informações do adaptador fornecidas pelo driver de miniporta. |
StorPortInitializePerfOpts | Inicializa as otimizações de desempenho compatíveis com o driver de miniporta e o driver do Storport usando uma estrutura PERF_CONFIGURATION_DATA. |
StorPortSetAdapterBusType | Usado para ajustar o BusType do adaptador dependendo de sua configuração atual. Definir o BusType com essa rotina permite que você substitua a propriedade global definida no INF da miniporta sem precisar reinstalar o driver. Esse recurso é útil para cenários como suporte a RAID ou suporte a 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 de dispositivos para o dispositivo indicado. |
StorPortSetPowerSettingNotificationGuids | Permite que uma miniporta receba notificações de configuração de energia. A miniporta registra uma matriz de GUIDs que identificam as configurações de energia para receber notificações de alteração de energia. |
StorPortSetUnitAttributes | Registra os atributos de energia de um dispositivo de unidade de armazenamento com o driver do Storport. |
Rotinas de Suporte de Interrupção
O driver do Storport fornece as seguintes rotinas de suporte de interrupção.
Rotina | Descrição |
---|---|
StorPortGetMSIInfo | Recupera as informações de interrupção sinalizada da mensagem (MSI) para a mensagem especificada. |
StorPortSynchronizeAccess | Fornece acesso sincronizado à extensão de dispositivo de um driver de miniporta. |
StorPortInitializeDpc | Inicializa uma chamada de procedimento adiado (DPC) do StorPort. |
StorPortIssueDpc | Emite um DPC de Storport. |
StorPortStallExecution | Interrompe o driver da miniporta. |
Rotinas de Suporte de Bloqueio
O driver do Storport fornece as seguintes rotinas de suporte de bloqueio.
Rotina | Descrição |
---|---|
StorPortAcquireMSISpinLock | Adquire o bloqueio de rotação de interrupção sinalizada da mensagem (MSI) associado à mensagem especificada. |
StorPortAcquireSpinLock | Adquire o bloqueio de rotação especificado. |
StorPortReleaseMSISpinLock | Libera um bloqueio de rotação de MSI adquirido anteriormente para a mensagem especificada. |
StorPortReleaseSpinLock | Libera um bloqueio de rotação adquirido por StorPortAcquireSpinLock. |
Rotinas de Suporte ao Gerenciamento de Memória
O driver do Storport fornece as seguintes rotinas de suporte ao gerenciamento de memória.
Rotina | Descrição |
---|---|
StorPortAllocateContiguousMemorySpecifyCacheNode | Aloca um intervalo de memória fisicamente contígua, não armazenada em cache e não paginada. |
StorPortAllocateMdl | Aloca um MDL para descrever a memória do pool não paginada fornecida. |
StorPortAllocatePool | Aloca um bloco de memória de pool não contígua e não paginada. |
StorPortAllocateRegistryBuffer | Aloca um buffer que uma miniporta pode usar para ler e gravar dados do registro. |
StorPortBuildMdlForNonPagedPool | Atualiza o MDL para descrever a memória não paginada 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 do pool não paginada. |
StorPortFreeContiguousMemorySpecifyCache | Desaloca um intervalo de memória não armazenada em cache na parte não paginada do espaço de endereço do sistema. |
StorPortFreePool | Libera um bloco de memória que foi alocado anteriormente por uma chamada para a rotina StorPortAllocatePool. |
StorPortFreeRegistryBuffer | Libera o buffer alocado para armazenar dados do 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 coleta de dispersão 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 de DMA. |
StorPortGetSystemAddress | Retorna um endereço virtual no espaço do sistema para o buffer de dados do bloco de solicitação SCSI (SRB) especificado. |
StorPortGetUncachedExtension | Aloca um buffer comum não armazenado em cache que a CPU e o dispositivo podem compartilhar. |
StorPortMarkDumpMemory | Uma miniporta deve marcar a memória usada para o arquivo de despejo ou o arquivo de hibernação. A memória marcada é mantida e permanece válida após uma retomada da operação de hibernação. A memória a ser marcada é especificada por um endereço e 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 do Storport fornece as seguintes rotinas de suporte de notificação.
Rotina | Descrição |
---|---|
StorPortAsyncNotificationDetected | Notifica o driver do Storport de um evento de alteração de status do dispositivo de armazenamento. |
StorPortNotification | Notifica o driver do Storport de determinados eventos e condições. |
StorPortStateChangeDetected | Notifica o driver de porta do Storport de uma alteração de estado para um número de unidade lógica (LUN), porta do adaptador de barramento de host (HBA) ou dispositivo de destino. |
Rotinas de Suporte de E/S de Porta e Registro
O driver do Storport fornece as seguintes rotinas de suporte de E/S de porta e registro.
Rotina | Descrição |
---|---|
StorPortGetDeviceBase | Mapeia 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 do dispositivo que StorPortGetDeviceBase mapeou anteriormente. |
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 especificado de valores de 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á em uso por outro adaptador. Essa rotina está obsoleta no Windows NT 4.0 e em sistemas operacionais 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 um número especificado de 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 do HBA indicado. |
StorPortWriteRegisterUlong | Transfere um valor ULONG para o endereço de registro do HBA indicado. |
StorPortWriteRegisterUlong64 | Grava um valor ULONG64 no endereço de registro especificado. |
StorPortWriteRegisterUshort | Transfere um valor ULONG para o endereço de registro do HBA indicado. |
Rotinas de Suporte ao Gerenciamento de Energia no Runtime
O driver do Storport fornece as seguintes rotinas de suporte ao gerenciamento de energia no runtime.
Rotina | Descrição |
---|---|
StorPortInitializePoFxPower | Registra um dispositivo de armazenamento com a estrutura de gerenciamento de energia (PoFx). |
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 em 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 plug-in do mecanismo de energia (PEP). |
StorPortPoFxSetComponentLatency | Especifica a latência máxima que pode ser tolerada na transição de ocioso para ativo no componente do dispositivo de armazenamento especificado. |
StorPortPoFxSetComponentResidency | Define o tempo estimado que um componente do dispositivo de armazenamento provavelmente permanecerá inativo após o componente entrar na condição inativa. |
Rotinas de Suporte ao Temporizador
O driver do Storport fornece as seguintes rotinas de suporte do 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 de temporizador do Storport. |
StorPortRequestTimer | Agenda um evento de retorno de chamada para um objeto de contexto de temporizador do Storport. |