Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W pewnych okolicznościach kierowcy mogą ponownie używać IRPs. Sterownik może przydzielić pulę pamięci buforów, które są używane do przechowywania IRP podczas ich tworzenia.
Sterowniki nie mogą próbować ponownie używać pakietów IRP wystawionych przez menedżera I/O. W szczególności sterowniki nie powinny próbować ponownie używać IRPs utworzonych przez IoMakeAssociatedIrp, IoBuildSynchronousFsdRequest, IoBuildAsynchronousFsdRequest lub IoBuildDeviceIoControlRequest.
Sterowniki mogą bezpiecznie ponownie używać utworzonych przez nie pakietów IRP.
Jeśli sterownik przydziela IRP jako surową pamięć (na przykład przez wywołanie funkcji ExAllocatePoolWithTag), a następnie inicjuje go z użyciem IoInitializeIrp, można bezpiecznie wywołać IoInitializeIrp lub IoReuseIrp w celu ponownego zainicjowania buforu pamięci.
W systemach operacyjnych Microsoft Windows 2000 i nowszych sterowniki tworzące protokół IRP z funkcją IoAllocateIrp mogą ponownie używać protokołu IRP przez wywołanie IoReuseIrp.
Jeśli sterownik przydziela IRP przez wywołanie IoAllocateIrp z parametrem ChargeQuota ustawionym na FALSE, można bezpiecznie użyć IoInitializeIrp w celu ponownego zainicjowania IRP. Sterowniki, które muszą działać w systemie Windows 98/Me, mogą używać tej metody jako obejścia. Sterowniki przeznaczone wyłącznie dla systemów operacyjnych Windows 2000 i nowszych powinny używać poprzedniej metody.