Share via


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

El QueryKey método recupera información sobre una clave del Registro, incluido el nombre de clave, la clase de clave y el número de subclaves y sus tamaños.

Sintaxis

NTSTATUS QueryKey(
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Parámetros

[in] KeyInformationClass

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_INFORMATION_CLASS:

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

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_BASIC_INFORMATION, KEY_FULL_INFORMATION o KEY_NODE_INFORMATION, según el valor de KeyInformationClass. La estructura va seguida de una cadena de caracteres Unicode cuyo tamaño depende del tipo de información que se solicita sobre la clave y la longitud del nombre o la cadena de clase de la clave.

[in] Length

Tamaño en bytes del búfer KeyInformation , que el autor de la llamada debe establecer según la keyInformationClass 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 escritos realmente en el búfer KeyInformation . 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

QueryKey devuelve STATUS_SUCCESS si la llamada se realizó correctamente al copiar la información solicitada en el búfer KeyInformation . Si el tamaño del 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 del búfer especificado es demasiado pequeño para recibir alguna de las informaciones solicitadas, 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.

Comentarios

Si el búfer KeyInformation 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 realizó correctamente escribiendo 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 (incluya Portcls.h)
IRQL PASSIVE_LEVEL

Consulte también

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwQueryKey