Freigeben über


WdfRegistryAssignMultiString-Funktion (wdfregistry.h)

[Gilt für KMDF und UMDF]

Die WdfRegistryAssignMultiString--Methode weist einem angegebenen Wertnamen in der Registrierung eine Reihe von Zeichenfolgen zu. Die Zeichenfolgen sind in einer angegebenen Auflistung von Framework-Zeichenfolgenobjekten enthalten.

Syntax

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

Die Parameter

[in] Key

Ein Handle zu einem Registrierungsschlüsselobjekt, das einen geöffneten Registrierungsschlüssel darstellt.

[in] ValueName

Ein Zeiger auf eine UNICODE_STRING Struktur, die einen Wertnamen enthält.

[in] StringsCollection

Ein Handle zu einem Framework-Auflistungsobjekt, das eine Auflistung von Framework-Zeichenfolgenobjekten darstellt.

Rückgabewert

WdfRegistryAssignMultiString gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode BESCHREIBUNG
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryAssignMultiString wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen.

STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter angegeben, oder die Auflistung, die vom StringsCollection Parameter angegeben wurde, enthielt keine Zeichenfolgenobjekte.
STATUS_ACCESS_DENIED
Der Treiber hat den Registrierungsschlüssel nicht mit KEY_SET_VALUE Zugriff geöffnet.
 

Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

Wenn der Wertname, den der ValueName Parameter angibt, bereits vorhanden ist, aktualisiert WdfRegistryAssignMultiString die Daten des Werts.

Das Framework legt den Datentyp des Werts auf REG_MULTI_SZ fest.

Die Objektauflistung, die StringsCollection- angibt, darf nur Framework-Zeichenfolgenobjekte enthalten.

Weitere Informationen zu Registrierungsschlüsselobjekten finden Sie unter Verwenden der Registrierung in Framework-Based Drivers.

Beispiele

Im folgenden Codebeispiel wird ein Auflistungsobjekt und zwei Zeichenfolgenobjekte erstellt, der Auflistung die Zeichenfolgenobjekte hinzugefügt, und anschließend werden die beiden Zeichenfolgen einem Registrierungswert zugewiesen.

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.
}

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfregistry.h (include Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

RtlInitUnicodeString

UNICODE_STRING

WdfCollectionAdd-

WdfCollectionCreate

WdfObjectDelete-

WdfRegistryAssignMemory-

WdfRegistryAssignString-

WdfRegistryAssignULong-

WdfRegistryAssignUnicodeString-

WdfRegistryAssignValue-

WdfStringCreate-