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) |