Função StorPortRegistryRead (storport.h)
A rotina StorPortRegistryRead lê os dados do Registro para o dispositivo e o valor indicados.
Sintaxe
BOOLEAN StorPortRegistryRead(
PVOID HwDeviceExtension,
PUCHAR ValueName,
ULONG Global,
ULONG Type,
PUCHAR Buffer,
PULONG BufferLength
);
Parâmetros
HwDeviceExtension
Um ponteiro para a extensão do dispositivo de hardware. Essa é uma área de armazenamento por HBA que o driver de porta aloca e inicializa em nome do driver de miniporta. Os drivers de miniporta geralmente armazenam informações específicas do HBA nessa extensão, como o estado do HBA e os intervalos de acesso mapeados para o HBA. Essa área está disponível para o driver de miniporta imediatamente após o driver de miniporto chamar StorPortInitialize. O driver de porta libera essa memória quando remove o dispositivo. O driver de miniporta deve estar em execução no IRQL PASSIVE_LEVEL quando chama essa rotina.
ValueName
Ponteiro para um UCHAR que especifica o nome do valor do Registro cujo conteúdo deve ser lido.
Global
Indica, quando diferente de zero, que o driver de porta lê o conteúdo do valor do Registro especificado por ValueName na subchave Parameters\Device. Os valores na chave do dispositivo se aplicam a todos os adaptadores no sistema. Quando Global é zero, o driver de porta lê o conteúdo do valor do Registro especificado por ValueName na subchave Parameters\Device(d), em que (d) é um valor decimal que corresponde ao número da porta de um adaptador específico. Nesse caso, os dados recuperados são específicos do adaptador.
Type
Indica o tipo de dados do valor do Registro. Esse parâmetro deve ter um dos valores na tabela a seguir.
Tipo de dados de valor do Registro | Significado |
---|---|
REG_NONE | Nenhum tipo de dados especificado. |
REG_SZ | Indica uma cadeia de caracteres Unicode terminada em NULL. |
REG_EXPAND_SZ | Indica uma cadeia de caracteres Unicode terminada em NULL que inclui variáveis de ambiente que devem ser expandidas para obter a cadeia de caracteres completa. Por exemplo, um nome de caminho pode ser armazenado como a seguinte cadeia de caracteres: "%USERPROFILE%\Application Data ". Neste exemplo, a variável de ambiente USERPROFILE deve ser expandida para obter o nome do caminho real. |
REG_BINARY | Indica dados binários brutos. |
REG_DWORD | Indica um valor de palavra dupla de 32 bits. |
REG_DWORD_LITTLE_ENDIAN | Indica um valor de palavra dupla de 32 bits, em ordem little-endian. Isso é idêntico ao REG_DWORD. |
REG_DWORD_BIG_ENDIAN | Indica um valor de palavra dupla de 32 bits, em ordem big-endian. |
REG_LINK | Indica uma cadeia de caracteres Unicode que contém um link simbólico. |
REG_MULTI_SZ | Indica uma série de cadeias de caracteres terminadas em NULL. |
REG_RESOURCE_LIST | Indica que o valor do Registro contém uma lista de recursos de hardware, também conhecida como "mapa de recursos de hardware", que é armazenada no hive HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap. |
REG_FULL_RESOURCE_DESCRIPTOR | Indica que o valor do Registro contém uma descrição dos recursos de hardware armazenados no hive HKEY_LOCAL_MACHINE\HARDWARE\Description. |
REG_RESOURCE_REQUIREMENTS_LIST | Indica que o valor do Registro contém uma lista de requisitos de recursos de hardware armazenados na árvore HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap. |
REG_QWORD | Indica que o valor do Registro contém um número de 64 bits. |
REG_QWORD_LITTLE_ENDIAN | Indica que o valor do Registro contém um número de 64 bits. Esse é o mesmo tipo de dados que REG_QWORD. |
Buffer
Ponteiro para o buffer em que as informações do Registro recuperadas devem ser relatadas.
BufferLength
Ponteiro para um ULONG que contém o tamanho, em bytes, dos dados do Registro retornados.
Retornar valor
StorPortRegistryRead retornará um valor booliano true se os dados apontados por ValueName forem convertidos com êxito em ASCII e copiados para o buffer. Essa rotina retorna FALSE no caso de um erro.
Comentários
Se StorPortRegistryRead retornar FALSE com um valor diferente de zero no parâmetro BufferLength , o buffer passado era muito pequeno e o parâmetro BufferLength refletirá o tamanho correto do buffer que deve ser usado. Se a rotina retornar FALSE com o parâmetro BufferLength definido como zero, outro erro ocorrerá.
O buffer usado nessa rotina é alocado chamando StorPortAllocateRegistryBuffer e liberado chamando StorPortFreeRegistryBuffer.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | storport.h (inclua Storport.h) |
Biblioteca | Storport.lib |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | StorPortIrql(storport) |