Función KsCreateDefaultAllocatorEx (ks.h)

Crea un asignador predeterminado que usa el grupo de memoria especificado y asocia ioGetCurrentIrpStackLocation(pIrp)->FileObject con este asignador mediante una tabla de distribución interna (KSDISPATCH_TABLE).

Sintaxis

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

Contiene el IRP con la solicitud de creación del asignador que se está controlando.

[in, optional] InitializeContext

Opcionalmente, contiene un contexto que se va a usar con un asignador externo. Esto solo se usa como contexto de inicialización para la devolución de llamada opcional InitializeAllocator al crear un contexto de asignador. De lo contrario, no se usa el parámetro . Si no se proporciona un asignador externo, este parámetro debe establecerse en NULL.

[in, optional] DefaultAllocate

Opcionalmente, contiene una función de asignación externa que se usa en lugar de la asignación de grupo predeterminada. Si es NULL, se usa la asignación predeterminada.

[in, optional] DefaultFree

Opcionalmente, contiene una función gratuita externa que se usa en lugar de la asignación de grupo predeterminada. Si no se proporciona un asignador externo, este parámetro debe establecerse en NULL.

[in, optional] InitializeAllocator

Opcionalmente, contiene una función de inicialización del asignador externo a la que se pasa el parámetro InitializeContext. Se espera que esta función devuelva un contexto de asignador basado en el marco del asignador. Si no se proporciona un asignador externo, este parámetro debe establecerse en NULL.

[in, optional] DeleteAllocator

Opcionalmente, contiene una función de eliminación de asignador externo que se usa para asignadores externos. Si no se proporciona un asignador externo, este parámetro debe establecerse en NULL.

Valor devuelto

Devuelve STATUS_SUCCESS, de lo contrario, se produce un error en el error de creación del asignador predeterminado. No completa el IRP ni establece el estado en irP.

Comentarios

Antes de llamar a esta rutina, la macro KSCREATE_ITEM_IRP_STORAGE(Irp) debe devolver un puntero a la estructura KSOBJECT_CREATE_ITEM que es el elemento de creación para este asignador. KsCreateDefaultAllocatorEx establece FsContext para que apunte al valor devuelto de esta macro. Por lo tanto, FsContext se puede usar posteriormente para consultas o cambios de descriptor de seguridad.

Puede encontrar KSCREATE_ITEM_IRP_STORAGE(Irp) y macros relacionadas en ks.h.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib