Share via


Método IRegistryKey::QueryValueKey (portcls.h)

El QueryValueKey método recupera información sobre las entradas de valor de una clave del Registro, incluidos sus nombres, tipos, tamaños de datos y valores.

Sintaxis

NTSTATUS QueryValueKey(
  [in]  PUNICODE_STRING             ValueName,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

Parámetros

[in] ValueName

Puntero al nombre proporcionado por el fabricante de la entrada de valor. La cadena de nombre se especifica mediante una estructura de tipo UNICODE_STRING.

[in] KeyValueInformationClass

Especifica el tipo de información que se va a devolver en el búfer. Establezca este parámetro en uno de los siguientes valores de enumeración KEY_VALUE_INFORMATION_CLASS:

  • KeyValueBasicInformation
  • KeyValueFullInformation
  • KeyValuePartialInformation

[out] KeyValueInformation

Puntero a un búfer asignado por el autor de la llamada en el que el método escribe los datos solicitados. El búfer contiene una estructura de tipo KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION o KEY_VALUE_PARTIAL_INFORMATION, según el valor de KeyValueInformationClass. La estructura va seguida de datos adicionales cuyo tamaño depende del tipo de datos del valor de clave.

[in] Length

Tamaño en bytes del búfer KeyValueInformation , que el autor de la llamada debe establecer según la clase KeyValueInformationClass especificada. Para recibir todos los datos solicitados, el búfer debe ser al menos tan grande como el tamaño de los datos solicitados.

[out] ResultLength

Puntero de salida para la longitud de los datos resultantes. Este parámetro apunta a una variable ULONG asignada por el autor de la llamada en la que el método escribe un recuento que especifica el número de bytes realmente escritos en el búfer KeyValueInformation . Sin embargo, si la longitud del búfer especificada es demasiado pequeña para contener la información, el método genera el tamaño de búfer necesario y devuelve STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

QueryValueKey devuelve STATUS_SUCCESS si la llamada se realizó correctamente al copiar la información solicitada en el búfer KeyValueInformation . Si el tamaño de búfer especificado es demasiado pequeño para recibir toda la información solicitada, el método devuelve STATUS_BUFFER_OVERFLOW. Si el tamaño de búfer especificado es demasiado pequeño para recibir cualquiera de la información solicitada, el método devuelve STATUS_BUFFER_TOO_SMALL. De lo contrario, el método devuelve un código de estado de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de error.

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Indica que uno de los parámetros pasados al método no es válido.
STATUS_OBJECT_NAME_NOT_FOUND
Indica que no se encontró la entrada de valor con el nombre especificado.

Comentarios

Si el búfer KeyValueInformation es demasiado pequeño para contener la información solicitada, el método escribe el tamaño necesario en *ResultLength y devuelve un código de estado de STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL. El método devuelve STATUS_BUFFER_OVERFLOW si se ha escrito correctamente solo parte de la información solicitada en el búfer. El método devuelve STATUS_BUFFER_TOO_SMALL si no pudo escribir ninguna información en el búfer. El valor escrito en *ResultLength indica el tamaño mínimo del búfer necesario para contener toda la información solicitada.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
IRQL PASSIVE_LEVEL

Consulte también

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey