Share via


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

El NewSubKey método crea una nueva subclave del Registro o abre una subclave existente bajo la clave representada por el objeto IRegistryKey .

Sintaxis

NTSTATUS NewSubKey(
  [out]           IRegistryKey    **RegistrySubKey,
  [in]            PUNKNOWN        OuterUnknown,
  [in]            ACCESS_MASK     DesiredAccess,
  [in]            PUNICODE_STRING SubKeyName,
  [in]            ULONG           CreateOptions,
  [out, optional] PULONG          Disposition
);

Parámetros

[out] RegistrySubKey

Puntero de salida para la nueva subclave. Este parámetro apunta a una variable de puntero asignada por el autor de la llamada en la que el método escribe el puntero en el nuevo objeto IRegistryKey . Este objeto representa la subclave que se abre o crea. Especifique un valor de puntero válido que no sea NULL para este parámetro.

[in] OuterUnknown

Puntero a la interfaz IUnknown de un objeto que necesita agregar el objeto de clave del Registro. Este parámetro es opcional. Si no se requiere la agregación, especifique este parámetro como NULL.

[in] DesiredAccess

Especifica el tipo de acceso que requiere el autor de la llamada a la subclave que se abre o crea. Este parámetro es de tipo ACCESS_MASK. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

[in] SubKeyName

Puntero al nombre que se va a asignar a la subclave. Este parámetro debe ser un puntero válido que no sea NULL a una estructura inicializada de tipo UNICODE_STRING.

[in] CreateOptions

Marcas que indican las opciones de creación. Puede ser cero si no se desea ninguno. Este parámetro es necesario si el valor de RegistryKeyType es GeneralRegistryKey; de lo contrario, el método no usa este parámetro. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

[out, optional] Disposition

Puntero de salida para el valor de disposición. Este parámetro apunta a una variable ULONG asignada por el autor de la llamada en la que el método escribe un valor de estado que indica si se creó una nueva clave o se abrió una clave existente. Este parámetro es opcional y se puede especificar como NULL si el autor de la llamada no lo necesita. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

NewSubKey devuelve STATUS_SUCCESS si la llamada se realizó correctamente al generar un puntero IRegistryKey válido a través del parámetro RegistrySubKey . De lo contrario, el método devuelve un código de error adecuado.

Comentarios

El NewSubKey método abre la clave del Registro especificada si ya existe o crea una nueva clave en el Registro si no existe. El método genera un puntero a la interfaz IRegistryKey de la nueva clave mediante el parámetro RegistrySubKey . El método también genera un valor de estado a través del parámetro Disposition opcional para indicar si la clave se abrió o creó.

Los parámetros DesiredAccess, CreateOptions y Disposition toman los valores definidos para los parámetros con los mismos nombres en la llamada a PcNewRegistryKey .

El parámetro DesiredAccess es una máscara de control de acceso que especifica el tipo de control de acceso que el autor de la llamada debe tener en la subclave al acceder a ella a través del objeto RegistrySubKey . Esta máscara no debe confundirse con la ACL (lista de control de acceso) que controla el acceso de los usuarios a la subclave del Registro. Cuando la función PcNewRegistryKey o el método IPort::NewRegistryKey crea una clave del Registro de tipo GeneralRegistryKey, el parámetro ObjectAttributes especifica los atributos de la clave, incluido un descriptor de seguridad que contiene la ACL. Sin embargo, cuando el NewSubKey método crea una nueva subclave del Registro, esa subclave simplemente hereda la ACL de su clave primaria. El NewSubKey método no proporciona ningún medio para especificar una ACL que difiere de la de la clave primaria.

Los parámetros RegistrySubKey y OuterUnknown siguen las convenciones de recuento de referencias para objetos COM.

Requisitos

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

Consulte también

ACCESS_MASK

IPort::NewRegistryKey

IRegistryKey

PcNewRegistryKey

UNICODE_STRING