Compartilhar via


Função KsCreateDefaultAllocatorEx (ks.h)

Cria um alocador padrão que usa o pool de memória especificado e associa o IoGetCurrentIrpStackLocation(pIrp)->FileObject a esse alocador usando uma tabela de expedição interna (KSDISPATCH_TABLE).

Sintaxe

KSDDKAPI NTSTATUS KsCreateDefaultAllocatorEx(
  [in]           PIRP                     Irp,
  [in, optional] PVOID                    InitializeContext,
  [in, optional] PFNKSDEFAULTALLOCATE     DefaultAllocate,
  [in, optional] PFNKSDEFAULTFREE         DefaultFree,
  [in, optional] PFNKSINITIALIZEALLOCATOR InitializeAllocator,
  [in, optional] PFNKSDELETEALLOCATOR     DeleteAllocator
);

Parâmetros

[in] Irp

Contém o IRP com a solicitação de criação do alocador sendo tratada.

[in, optional] InitializeContext

Opcionalmente, contém um contexto a ser usado com um alocador externo. Isso só é usado como o contexto de inicialização para o retorno de chamada initializeAllocator opcional ao criar um contexto de alocador. O parâmetro não é usado de outra forma. Se um alocador externo não for fornecido, esse parâmetro deverá ser definido como NULL.

[in, optional] DefaultAllocate

Opcionalmente, contém uma função de alocação externa que é usada no lugar da alocação de pool padrão. Se for NULL, a alocação padrão será usada.

[in, optional] DefaultFree

Opcionalmente, contém uma função livre externa que é usada no lugar da alocação de pool padrão. Se um alocador externo não for fornecido, esse parâmetro deverá ser definido como NULL.

[in, optional] InitializeAllocator

Opcionalmente, contém uma função de inicialização de alocador externo para a qual o parâmetro InitializeContext é passado. Espera-se que essa função retorne um contexto de alocador com base no enquadramento do alocador. Se um alocador externo não for fornecido, esse parâmetro deverá ser definido como NULL.

[in, optional] DeleteAllocator

Opcionalmente, contém uma função de exclusão de alocador externo que é usada para alocadores externos. Se um alocador externo não for fornecido, esse parâmetro deverá ser definido como NULL.

Retornar valor

Retorna STATUS_SUCCESS, caso contrário, um erro na falha de criação do alocador padrão. Não conclui o IRP nem define o status no IRP.

Comentários

Antes de chamar essa rotina, a macro KSCREATE_ITEM_IRP_STORAGE(Irp) deve retornar um ponteiro para a estrutura KSOBJECT_CREATE_ITEM que é o item de criação para esse alocador. KsCreateDefaultAllocatorEx define FsContext para apontar para o valor retornado dessa macro. Dessa forma, o FsContext pode ser usado posteriormente para consultas ou alterações do descritor de segurança.

Você pode encontrar KSCREATE_ITEM_IRP_STORAGE(Irp) e macros relacionadas em ks.h.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib