MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE función de devolución de llamada (ndis.h)
NDIS llama a la función miniportSharedMemoryAllocateComplete de un controlador de miniporte para completar una solicitud de asignación de memoria compartida que inició el controlador de miniportar llamando al función NdisMAllocateSharedMemoryAsyncEx.
Sintaxis
MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;
void MiniportAllocateSharedMemComplete(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PVOID VirtualAddress,
[in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
[in] ULONG Length,
[in] PVOID Context
)
{...}
Parámetros
[in] MiniportAdapterContext
Identificador de un área de contexto asignada por el controlador de miniport en el que el controlador mantiene la información de estado de una NIC. El controlador asigna este área de contexto en . función miniportInitializeEx.
[in] VirtualAddress
Dirección virtual base de la memoria compartida que asignó el controlador de miniport mediante una llamada a NdisMAllocateSharedMemoryAsyncEx. virtualAddress es NULL si se produjo un error en el intento de asignación.
[in] PhysicalAddress
Dirección física base de la NIC que se va a usar que se asigna a la dirección que especifica el parámetro virtualAddress .
[in] Length
Número de bytes que NdisMAllocateSharedMemoryAsyncEx asignado.
[in] Context
Puntero a un área de contexto que especificó el controlador de miniport en la llamada anterior a NdisMAllocateSharedMemoryAsyncEx.
Valor devuelto
Ninguno
Observaciones
miniportAllocateSharedMemoryComplete es una función opcional para controladores de miniport. Un controlador de miniport registra una función MiniportAllocateSharedMemoryComplete en la estructura NDIS_SG_DMA_DESCRIPTION que el controlador pasó al función NdisMRegisterScatterGatherDma.
Llamada a controladores de miniport NdisMAllocateSharedMemoryAsyncEx para asignar memoria compartida. Si NdisMAllocateSharedMemoryAsyncEx devuelve NDIS_STATUS_PENDING, NDIS llama a MiniportAllocateSharedMemoryComplete para pasar la memoria al controlador de miniport.
NDIS llama a miniportSharedMemoryAllocateComplete en irQL PASSIVE_LEVEL.
Ejemplos de
Para definir una función MiniportSharedMemoryAllocateComplete, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir un MiniportSharedMemoryAllocateComplete función denominada "MySharedMemoryAllocateComplete", use el tipo MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE tal como se muestra en este ejemplo de código:
MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MySharedMemoryAllocateComplete(
NDIS_HANDLE MiniportAdapterContext,
PVOID VirtualAddress,
PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
ULONG Length,
PVOID Context
)
{...}
El tipo de función MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Windows |
encabezado de | ndis.h (incluya Ndis.h) |
irQL | PASSIVE_LEVEL |