Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
[Aplica-se somente ao KMDF]
O método WdfLookasideListCreate cria um objeto lookaside-list, do qual o driver pode obter objetos de memória.
Sintaxe
NTSTATUS WdfLookasideListCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES LookasideAttributes,
[in] size_t BufferSize,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
[in, optional] ULONG PoolTag,
[out] WDFLOOKASIDE *Lookaside
);
Parâmetros
[in, optional] LookasideAttributes
Um ponteiro para uma estrutura WDF_OBJECT_ATTRIBUTES que contém atributos de objeto para o novo objeto lookaside-list. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.
[in] BufferSize
O tamanho diferente de zero, em bytes, do buffer que a estrutura alocará para cada objeto de memória.
[in] PoolType
Um valor POOL_TYPEdigitado que especifica o tipo de memória a ser alocada.
[in, optional] MemoryAttributes
Um ponteiro para uma estrutura WDF_OBJECT_ATTRIBUTES que contém atributos de objeto para cada objeto de memória que o driver obtém da lista lookaside. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.
[in, optional] PoolTag
Uma marca de pool definida pelo driver para o buffer de cada objeto de memória. Os depuradores exibem essa marca. Os drivers normalmente especificam uma cadeia de caracteres de até quatro caracteres, delimitada por aspas simples, em ordem inversa (por exemplo, 'dcba'). O valor ASCII de cada caractere na marca deve estar entre 0 e 127. A depuração do driver será mais fácil se cada marca de pool for exclusiva.
Se PoolTag for zero, a estrutura fornecerá uma marca de pool padrão que usa os quatro primeiros caracteres do nome do serviço do modo kernel do driver. Se o nome do serviço começar com "WDF" (o nome não diferencia maiúsculas de minúsculas e não inclui as aspas), os próximos quatro caracteres serão usados. Se menos de quatro caracteres estiverem disponíveis, "FxDr" será usado.
Para as versões KMDF 1.5 e posteriores, o driver pode usar o DriverPoolTag membro da estrutura WDF_DRIVER_CONFIG para especificar uma marca de pool padrão.
[out] Lookaside
Um ponteiro para um local que recebe um identificador para o novo objeto lookaside-list.
Valor de retorno
WdfLookasideListCreate retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:
| Código de retorno | Descrição |
|---|---|
|
Um parâmetro inválido foi detectado. |
|
Não havia memória suficiente. |
Para obter uma lista de outros valores retornados que o método WdfLookasideListCreate pode retornar, consulte Framework Object Creation Errors.
Esse método também pode retornar outros valores NTSTATUS .
Observações
Depois que o driver chama WdfLookasideListCreate para criar um objeto lookaside-list, o driver pode chamar WdfMemoryCreateFromLookaside para obter um buffer da lista lookaside.
Por padrão, o pai do novo objeto lookaside-list é o objeto de driver da estrutura que o método WdfDriverCreate cria. Você pode usar o ParentObject membro da estrutura WDF_OBJECT_ATTRIBUTES para especificar um pai diferente. A estrutura exclui o objeto lookaside-list quando exclui o objeto pai. Se o driver não alterar o pai padrão, o driver deverá excluir o objeto lookaside-list quando terminar de usar o objeto; caso contrário, o objeto lookaside-list permanecerá até que o gerente de E/S descarregue o driver.
Se o driver fornecer uma estrutura WDF_OBJECT_ATTRIBUTES para os parâmetros LookasideAttributes e MemoryAttributes parâmetros e, se ambas as estruturas especificarem um objeto de dispositivo como o objeto pai, os identificadores de objeto do dispositivo deverão ser os mesmos.
Para obter mais informações sobre objetos de memória da estrutura e listas lookaside, consulte Usando buffers de memória.
Se o driver especificar do PagedPool para o parâmetro PoolType, o método WdfLookasideListCreate deve ser chamado em IRQL <= APC_LEVEL. Caso contrário, o método pode ser chamado em IRQL <= DISPATCH_LEVEL.
Exemplos
Para obter um exemplo de código que usa WdfLookasideListCreate, consulte WdfMemoryCreateFromLookaside.
Requisitos
| Requisito | Valor |
|---|---|
| da Plataforma de Destino | Universal |
| versão mínima do KMDF | 1.0 |
| cabeçalho | wdfmemory.h (inclua Wdf.h) |
| Biblioteca | Wdf01000.sys (consulte o Controle de Versão da Biblioteca da Estrutura.) |
| IRQL | Consulte a seção Comentários. |
| regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |