Função IoAllocateDriverObjectExtension (wdm.h)
A rotina de IoAllocateDriverObjectExtension aloca uma área de contexto por driver, chamada de de extensão de objeto de drivere 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.
Valor de retorno
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 a ClientIdentificationAddress fornecida. |
Observações
A memória alocada pelo sistema para a extensão de objeto de driver é o armazenamento residente e é acessível 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 |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |