Macro FsRtlAllocatePoolWithTag (ntifs.h)
A rotina de
Sintaxe
void FsRtlAllocatePoolWithTag(
[in] PoolType,
[in] NumberOfBytes,
[in] Tag
);
Parâmetros
[in] PoolType
Tipo de pool a ser alocado. Um dos seguintes:
- NonPagedPool
- do PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Os
[in] NumberOfBytes
Número de bytes a serem alocados. Esse parâmetro é necessário e não pode ser zero.
[in] Tag
Especifica a marca de pool para a memória alocada. Os drivers normalmente especificam a marca de pool como uma cadeia de caracteres de um a quatro caracteres ASCII de 7 bits, delimitadas por aspas simples (por exemplo, 'abcd'). Esse parâmetro é necessário e não pode ser zero.
Valor de retorno
Nenhum
Observações
Se ocorrer uma falha de alocação de pool, FsRtlAllocatePoolWithTag gera uma exceção STATUS_INSUFFICIENT_RESOURCES. Para obter controle se essa falha de alocação de pool ocorrer, o driver deverá encapsular a chamada para FsRtlAllocatePoolWithTag em uma instrução try-except ou try-finally.
O sistema associa a marca de pool especificada pelo parâmetro Tag ao buffer alocado. Ferramentas de programação, como o WinDbg (Depurador do Windows), podem exibir a marca de pool associada a cada buffer alocado. O valor da marca do pool normalmente é exibido em ordem invertida. Por exemplo, se um chamador passar 'Fred' como o valor do parâmetro Marca, esse valor aparecerá como 'derF' se o pool for despejado ou ao acompanhar o uso do pool no depurador.
Para obter mais informações sobre o gerenciamento de memória, consulte de Gerenciamento de Memória.
A memória que aloca FsRtlAllocatePoolWithTag não está inicializada. Um driver de modo kernel deve primeiro zero essa memória se ele for torná-la visível para o software no modo de usuário (para evitar o vazamento de conteúdo potencialmente privilegiado).
Os chamadores de FsRtlAllocatePoolWithTag devem estar em execução no IRQL <= DISPATCH_LEVEL. Um chamador no DISPATCH_LEVEL deve especificar um
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (consulte a seção Comentários) |