Função WdfRegistryAssignMultiString (wdfregistry.h)
[Aplica-se a KMDF e UMDF]
O método WdfRegistryAssignMultiString atribui um conjunto de cadeias de caracteres a um nome de valor especificado no Registro. As cadeias de caracteres estão contidas em uma coleção especificada de objetos de cadeia de caracteres de estrutura.
Sintaxe
NTSTATUS WdfRegistryAssignMultiString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] WDFCOLLECTION StringsCollection
);
Parâmetros
[in] Key
Um identificador para um objeto de chave do Registro que representa uma chave do Registro aberta.
[in] ValueName
Um ponteiro para uma estrutura UNICODE_STRING que contém um nome de valor.
[in] StringsCollection
Um identificador para um objeto de coleção de estruturas que representa uma coleção de objetos de cadeia de caracteres de estrutura.
Retornar valor
WdfRegistryAssignMultiString retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
WdfRegistryAssignMultiString não foi chamado em IRQL = PASSIVE_LEVEL. |
|
Um parâmetro inválido foi especificado ou a coleção que o parâmetro StringsCollection especificou não continha nenhum objeto de cadeia de caracteres. |
|
O driver não abriu a chave do Registro com acesso KEY_SET_VALUE. |
Esse método também pode retornar outros valores NTSTATUS.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Se o nome do valor especificado pelo parâmetro ValueName já existir, WdfRegistryAssignMultiString atualizará os dados do valor.
A estrutura define o tipo de dados do valor como REG_MULTI_SZ.
A coleção de objetos especificada por StringsCollection deve conter apenas objetos de cadeia de caracteres de estrutura.
Para obter mais informações sobre objetos de chave do Registro, consulte Usando o Registro em drivers de Framework-Based.
Exemplos
O exemplo de código a seguir cria um objeto de coleção e dois objetos de cadeia de caracteres, adiciona os objetos de cadeia de caracteres à coleção e atribui as duas cadeias de caracteres a um valor do 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 | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfregistry.h (include Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |