IoSetGenericIrpExtension

NTSTATUS __stdcall IoSetGenericIrpExtension(
        _IRP *Irp,
        UINT8 *GenericExtensionData,
        UINT16 GenericExtensionDataSize,
        UINT8 OverwriteIfPresent){
  size_t v4; 
  _IRP_EXTENSION_TYPE v6; 
  _IOP_IRP_EXTENSION *IrpExtension; 

  v4 = GenericExtensionDataSize;
  if( GenericExtensionDataSize > 4u )
    return -1073741811;
  v6 = IopGenericType;
  if( !OverwriteIfPresent && IopIrpHasExtensionType(Irp, 2ui64) )
    return -1073741791;
  IrpExtension = IopAllocateIrpExtension(Irp, v6);
  if( !IrpExtension )
    return -1073741670;
  memmove(IrpExtension->GenericExtension, GenericExtensionData, v4);
  return 0;
}

Referenced by:

StRtlIoStorInfoSetNvCachePriority