Função IoAllocateDriverObjectExtension (wdm.h)
A rotina IoAllocateDriverObjectExtension aloca uma área de contexto por driver, chamada de extensão de objeto de driver, e atribui um identificador exclusivo a ela.
Sintaxe
NTSTATUS IoAllocateDriverObjectExtension(
[in] PDRIVER_OBJECT DriverObject,
[in] PVOID ClientIdentificationAddress,
[in] ULONG DriverObjectExtensionSize,
[out] PVOID *DriverObjectExtension
);
Parâmetros
[in] DriverObject
Ponteiro para um objeto de driver ao qual a área de contexto será associada.
[in] ClientIdentificationAddress
Especifica um identificador exclusivo para a área de contexto a ser alocada.
[in] DriverObjectExtensionSize
Especifica o comprimento, em bytes, da área de contexto a ser alocada.
[out] DriverObjectExtension
Ponteiro para, após a conclusão, a área de contexto alocada.
Retornar valor
IoAllocateDriverObjectExtension retorna um dos seguintes códigos NTSTATUS:
Código de retorno | Descrição |
---|---|
|
Indica que a rotina alocou uma extensão do tamanho solicitado. |
|
Indica que a memória não pôde ser alocada para a extensão de objeto do driver. |
|
Indica que já existe uma extensão de objeto de driver com o ClientIdentificationAddress fornecido. |
Comentários
A memória alocada pelo sistema para a extensão de objeto do driver é o armazenamento residente e pode ser acessada de qualquer IRQL. O armazenamento alocado é liberado automaticamente pelo gerenciador de E/S quando o objeto de driver é excluído.
Os chamadores dessa rotina devem fornecer um identificador exclusivo para ClientIdentificationAddress. Para recuperar um ponteiro para a área de contexto, um chamador passa o ClientIdentificationAddress para IoGetDriverObjectExtension.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |