NdisFlushBuffer
9/8/2008
Essa função libera a região memória descrita por um descritor reserva especificada de todos os caches processador.
Syntax
VOID NdisFlushBuffer(
PNDIS_BUFFER Buffer,
BOOLEAN WriteToDevice
);
Parameters
- Buffer
[no] Ponteiro para um mapeamento descrição reserva uma reserva a partir do qual ou para quais dados é transferida como um mestre barramento operação acesso direto à memória (DMA).
WriteToDevice
[no] Especifica se o driver NIC chama essa função para TRUE liberado uma reserva antes de fazer um transferir da memória hospedar à NIC.Se o driver NIC especifica FALSE, ele deve garantir que a reserva começa e termina em um limite cache-Line.
Observação
Este sinalizador é ignorado no momento.
Return Value
Nenhum.
Remarks
Drivers de BusMaster NICs acesso direto à memória (DMA) chamar esta função manter dados integridade na memória compartilhada. Liberando a reserva assegura coerência entre a hospedar armazenar em cache memória e processador físico memória antes uma transferir acesso direto à memória (DMA) para ou de cartão interface de rede.
O driver liberações tal uma reserva quando dados que ele compartilha com seu NIC podem ser armazenado em cache. Para qualquer transferir entre hospedar memória e um mestre barramento DMA NIC, a miniporta deve liberado de reserva antes da inicialização do transferir. Tal um driver também deve garantir que hospedar memória não é acessada até que a transferir completa.
NdisFlushBuffer é uma operação cara em Windows Embedded CE, pois ele libera todos os caches dados, não apenas a um para a página afetada. Para melhor desempenho e utilização recurso, use memória non-cached em vez disso. A seguinte lista mostra dois alternativo técnicas.
- Uso O VirtualAlloc e VirtualCopy Com PAGE_NOCACHE
- Uso NdisMAllocateSharedMemory Com *Em cache =*FALSE
Requirements
Header | ndis.h |
Library | ndis.lib |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
MiniportHandleInterrupt
NdisMAllocateSharedMemory
NdisMUpdateSharedMemory