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) |