Função IoFreeIrp (wdm.h)
A rotina de IoFreeIrp libera um IRP alocado pelo chamador da rotina de IoCompletion do chamador.
Sintaxe
void IoFreeIrp(
[in] PIRP Irp
);
Parâmetros
[in] Irp
Ponteiro para o IRP que será liberado.
Valor de retorno
Nenhum
Observações
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 de IoCompletion que retorna STATUS_MORE_PROCESSING_REQUIRED para o IRP associado.
IoFreeIrp não libera MDLs que possam ser anexadas 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 cancelar explicitamente essas páginas. Em vez disso, IoFreeMdl desmamaia 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 |
---|---|
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 |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |