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 |