WdfRegistryAssignMultiString-Funktion (wdfregistry.h)
[Gilt für KMDF und UMDF]
Die WdfRegistryAssignMultiString-Methode weist einem angegebenen Wertnamen in der Registrierung einen Satz von Zeichenfolgen zu. Die Zeichenfolgen sind in einer angegebenen Auflistung von Frameworkzeichenfolgenobjekten enthalten.
Syntax
NTSTATUS WdfRegistryAssignMultiString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] WDFCOLLECTION StringsCollection
);
Parameter
[in] Key
Ein Handle für ein 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 für ein Frameworkauflistungsobjekt, das eine Auflistung von Frameworkzeichenfolgenobjekten 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 |
---|---|
|
WdfRegistryAssignMultiString wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen. |
|
Ein ungültiger Parameter wurde angegeben, oder die Auflistung, die der angegebene StringsCollection-Parameter enthielt keine Zeichenfolgenobjekte. |
|
Der Treiber hat den Registrierungsschlüssel nicht mit KEY_SET_VALUE Zugriff geöffnet. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
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 von StringsCollection angegebene Objektauflistung darf nur Frameworkzeichenfolgenobjekte enthalten.
Weitere Informationen zu Registrierungsschlüsselobjekten finden Sie unter Verwenden der Registrierung in Framework-Based-Treibern.
Beispiele
Im folgenden Codebeispiel werden ein Auflistungsobjekt und zwei Zeichenfolgenobjekte erstellt, die Zeichenfolgenobjekte der Auflistung hinzugefügt und dann 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 |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfregistry.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |