Compartir a través de


Función StorPortRegistryRead (storport.h)

La rutina StorPortRegistryRead lee los datos del Registro del dispositivo y el valor indicados.

Sintaxis

BOOLEAN StorPortRegistryRead(
  PVOID  HwDeviceExtension,
  PUCHAR ValueName,
  ULONG  Global,
  ULONG  Type,
  PUCHAR Buffer,
  PULONG BufferLength
);

Parámetros

HwDeviceExtension

Puntero a la extensión de dispositivo de hardware. Se trata de un área de almacenamiento por HBA que el controlador de puerto asigna e inicializa en nombre del controlador de minipuerto. Los controladores de minipuerto suelen almacenar información específica de HBA en esta extensión, como el estado del HBA y los intervalos de acceso asignados para el HBA. Esta área está disponible para el controlador de minipuerto inmediatamente después de que el controlador de minipuerto llame a StorPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo. El controlador de minipuerto debe ejecutarse en irQL PASSIVE_LEVEL cuando llama a esta rutina.

ValueName

Puntero a un UCHAR que especifica el nombre del valor del Registro cuyo contenido se va a leer.

Global

Indica, cuando no es cero, que el controlador de puerto lee el contenido del valor del Registro especificado por ValueName en la subclave Parameters\Device. Los valores de la clave de dispositivo se aplican a todos los adaptadores del sistema. Cuando Global es cero, el controlador de puerto lee el contenido del valor del Registro especificado por ValueName en la subclave Parameters\Device(d), donde (d) es un valor decimal que corresponde al número de puerto de un adaptador determinado. En este caso, los datos recuperados son específicos del adaptador.

Type

Indica el tipo de datos del valor del Registro. Este parámetro debe tener uno de los valores de la tabla siguiente.

Tipo de datos de valor del Registro Significado
REG_NONE No se ha especificado ningún tipo de datos.
REG_SZ Indica una cadena Unicode terminada en NULL.
REG_EXPAND_SZ Indica una cadena Unicode terminada en NULL que incluye variables de entorno que se deben expandir para obtener la cadena completa. Por ejemplo, un nombre de ruta de acceso se puede almacenar como la siguiente cadena: "%USERPROFILE%\Application Data". En este ejemplo, la variable de entorno USERPROFILE debe expandirse para obtener el nombre de ruta de acceso real.
REG_BINARY Indica un dato binario sin procesar.
REG_DWORD Indica un valor de palabra doble de 32 bits.
REG_DWORD_LITTLE_ENDIAN Indica un valor de palabra doble de 32 bits, en orden little-endian. Esto es idéntico a REG_DWORD.
REG_DWORD_BIG_ENDIAN Indica un valor de palabra doble de 32 bits, en orden big-endian.
REG_LINK Indica una cadena Unicode que contiene un vínculo simbólico.
REG_MULTI_SZ Indica una serie de cadenas terminadas en NULL.
REG_RESOURCE_LIST Indica que el valor del Registro contiene una lista de recursos de hardware, también conocido como "mapa de recursos de hardware", que se almacena en el subárbol HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap.
REG_FULL_RESOURCE_DESCRIPTOR Indica que el valor del Registro contiene una descripción de los recursos de hardware almacenados en el subárbol HKEY_LOCAL_MACHINE\HARDWARE\Description.
REG_RESOURCE_REQUIREMENTS_LIST Indica que el valor del Registro contiene una lista de requisitos de recursos de hardware almacenados en el árbol de HKEY_LOCAL_MACHINE\HARDWARE\ResourceMap.
REG_QWORD Indica que el valor del Registro contiene un número de 64 bits.
REG_QWORD_LITTLE_ENDIAN Indica que el valor del Registro contiene un número de 64 bits. Este es el mismo tipo de datos que REG_QWORD.

Buffer

Puntero al búfer donde se va a notificar la información del Registro recuperada.

BufferLength

Puntero a un ULONG que contiene el tamaño, en bytes, de los datos del Registro devueltos.

Valor devuelto

StorPortRegistryRead devuelve un valor booleano de TRUE si los datos a los que apunta ValueName se convierten correctamente en ASCII y se copian en el búfer. Esta rutina devuelve FALSE en caso de error.

Comentarios

Si StorPortRegistryRead devuelve FALSE con un valor distinto de cero en el parámetro BufferLength , el búfer que se pasó era demasiado pequeño y el parámetro BufferLength refleja el tamaño correcto del búfer que se debe usar. Si la rutina devuelve FALSE con el parámetro BufferLength establecido en cero, se ha producido otro error.

El búfer usado en esta rutina se asigna llamando a StorPortAllocateRegistryBuffer y liberado llamando a StorPortFreeRegistryBuffer.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
Library Storport.lib
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI StorPortIrql(storport)

Consulte también

StorPortAllocateRegistryBuffer

StorPortFreeRegistryBuffer

StorPortInitialize