Compartilhar via


Função IoFreeIrp (wdm.h)

A rotina IoFreeIrp libera um IRP alocado pelo chamador da rotina IoCompletion do chamador.

Sintaxe

void IoFreeIrp(
  [in] PIRP Irp
);

Parâmetros

[in] Irp

Ponteiro para o IRP que deve ser liberado.

Retornar valor

Nenhum

Comentários

Essa rotina é recíproca para IoAllocateIrp ou IoBuildAsynchronousFsdRequest. O IRP liberado deve ter sido alocado pelo chamador.

Essa rotina também libera um IRP alocado com IoMakeAssociatedIrp no qual o chamador configurou sua rotina IoCompletion que retorna STATUS_MORE_PROCESSING_REQUIRED para o IRP associado.

IoFreeIrp não libera MDLs que possam ser anexados ao IRP. O driver que libera o IRP deve liberar explicitamente esses MDLs. Além disso, se as páginas físicas descritas por um MDL estiverem bloqueadas, o driver deverá desbloquear as páginas antes de liberar o MDL. No entanto, o driver não precisa desmapear explicitamente essas páginas. Em vez disso, IoFreeMdl cancela automaticamente as páginas quando libera o MDL. Para obter um exemplo de código que mostra como liberar uma cadeia de MDL, consulte Usando MDLs.

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
Regras de conformidade da DDI HwStorPortProhibitedDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport)

Confira também

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine