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
STATUS_SUCCESS
Indica que a rotina alocou uma extensão do tamanho solicitado.
STATUS_INSUFFICIENT_RESOURCES
Indica que a memória não pôde ser alocada para a extensão de objeto do driver.
STATUS_OBJECT_NAME_COLLISION
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

Confira também

IoGetDriverObjectExtension