Función WdfRegistryAssignMultiString (wdfregistry.h)

[Se aplica a KMDF y UMDF]

El método WdfRegistryAssignMultiString asigna un conjunto de cadenas a un nombre de valor especificado en el Registro. Las cadenas están contenidas en una colección especificada de objetos de cadena de marco.

Sintaxis

NTSTATUS WdfRegistryAssignMultiString(
  [in] WDFKEY           Key,
  [in] PCUNICODE_STRING ValueName,
  [in] WDFCOLLECTION    StringsCollection
);

Parámetros

[in] Key

Identificador de un objeto de clave del Registro que representa una clave del Registro abierta.

[in] ValueName

Puntero a una estructura UNICODE_STRING que contiene un nombre de valor.

[in] StringsCollection

Identificador de un objeto de colección de marcos que representa una colección de objetos de cadena de marco.

Valor devuelto

WdfRegistryAssignMultiString devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_DEVICE_REQUEST

No se llamó a WdfRegistryAssignMultiString en IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Se especificó un parámetro no válido o la colección que el parámetro StringsCollection especificó sin objetos de cadena.
STATUS_ACCESS_DENIED
El controlador no abrió la clave del Registro con acceso KEY_SET_VALUE.
 

Este método también podría devolver otros valores NTSTATUS.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Comentarios

Si el nombre del valor que el parámetro ValueName especifica ya existe, WdfRegistryAssignMultiString actualiza los datos del valor.

El marco establece el tipo de datos del valor en REG_MULTI_SZ.

La colección de objetos que StringsCollection especifica debe contener solo objetos de cadena de marco.

Para obtener más información sobre los objetos de clave del Registro, vea Uso del Registro en controladores de Framework-Based.

Ejemplos

En el ejemplo de código siguiente se crea un objeto de colección y dos objetos de cadena, se agregan los objetos de cadena a la colección y, a continuación, se asignan las dos cadenas a un valor del Registro.

WDF_OBJECT_ATTRIBUTES attributes;
WDFCOLLECTION col = NULL;
WDFSTRING string1 = NULL, string2 = NULL;
UNICODE_STRING ustring1, ustring2, valueName;
NTSTATUS status;

status = WdfCollectionCreate(
                             WDF_NO_OBJECT_ATTRIBUTES,
                             &col
                             );
if (!NT_SUCCESS(status) {
    return status;
}

RtlInitUnicodeString(
                     &ustring1,
                     L"String1"
                     );
RtlInitUnicodeString(
                     &ustring2,
                     L"String2"
                     );
RtlInitUnicodeString(
                     &valueName,
                     L"ValueName"
                     );

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = col;

status = WdfStringCreate(
                         &ustring1,
                         &attributes,
                         &string1
                         );
if (!NT_SUCCESS(status)) {
    goto exit;
}
status = WdfStringCreate(
                         &ustring2,
                         &attributes,
                         &string2
                         );
if (!NT_SUCCESS(status)) {
    goto exit;
}
status = WdfCollectionAdd(
                          col,
                          string1
                          );
if (!NT_SUCCESS(status)) {
    goto exit;
}
string1 = NULL;

status = WdfCollectionAdd(
                          col,
                          string2
                          );
if (!NT_SUCCESS(status)) {
    goto exit;
}
string2 = NULL;

status = WdfRegistryAssignMultiString(
                                      Key,
                                      &valueName,
                                      col
                                      );
if (!NT_SUCCESS(status)) {
    goto exit;
...
exit:
if (col != NULL) {
    WdfObjectDelete(col);    // This will empty the collection
                             // because the string objects are
                             // child objects of the collection object.
}

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfregistry.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

RtlInitUnicodeString

UNICODE_STRING

WdfCollectionAdd

WdfCollectionCreate

WdfObjectDelete

WdfRegistryAssignMemory

WdfRegistryAssignString

WdfRegistryAssignULong

WdfRegistryAssignUnicodeString

WdfRegistryAssignValue

WdfStringCreate