Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |