Compartir a través de


Función KsCreateDefaultAllocatorEx (ks.h)

Crea un asignador predeterminado que usa el grupo de memoria especificado y asocia el 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á administrando.

[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 a 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 se NULL, se usa la asignación predeterminada.

[in, optional] DefaultFree

Opcionalmente, contiene una función libre 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 del 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.

Observaciones

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 más adelante para las consultas o cambios del descriptor de seguridad.

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

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ks.h (incluya Ks.h)
biblioteca de Ks.lib